Rabu, 19 Februari 2014

Client-server Socket Programming dalam Bahasa Java di Linux

artikel ini akan membahas langkah-langkah membuat socket progrmming client server dalam bahasa Java. seperti membuat socket programming dalam bahasa C, kita juga harus membuat dua file source code. 

1. buat soure code server pada text editor. simpan file dengan nama yang sama dengan nama class. kali ini kita membuat file dengan nama class GreetingServer, maka simpan dengan nama file GreetingServer.java
// File Name GreetingServer.java
import java.net.*;
import java.io.*;
public class GreetingServer extends Thread{
   private ServerSocket serverSocket;
   public GreetingServer(int port) throws IOException{
      serverSocket = new ServerSocket(port);
      serverSocket.setSoTimeout(10000);
   }
   public void run(){
      while(true){
         try{
            System.out.println("Waiting for client on port " + serverSocket.getLocalPort() + "...");
            Socket server = serverSocket.accept();
            System.out.println("Just connected to "+ server.getRemoteSocketAddress());
            DataInputStream in = new DataInputStream(server.getInputStream());
            System.out.println(in.readUTF());
            DataOutputStream out = new DataOutputStream(server.getOutputStream());
            out.writeUTF("Thank you for connecting to " + server.getLocalSocketAddress() + "\nGoodbye!");
            server.close();
         }catch(SocketTimeoutException s){
            System.out.println("Socket timed out!");
            break;
         }catch(IOException e){
            e.printStackTrace();
            break;
         }
      }
   }
   public static void main(String [] args){
      int port = Integer.parseInt(args[0]);
      try{
         Thread t = new GreetingServer(port);
         t.start();
      }catch(IOException e){
         e.printStackTrace();
      }
   }
}

2. buat soure code client pada text editor. simpan file dengan nama yang sama dengan nama class. kali ini kita membuat file dengan nama class GreetingClient, maka simpan dengan nama file GreetingClient.java
// File Name GreetingClient.java
import java.net.*;
import java.io.*;
public class GreetingClient{
   public static void main(String [] args){
      String serverName = args[0];
      int port = Integer.parseInt(args[1]);
      try{
         System.out.println("Connecting to " + serverName + " on port " + port);
         Socket client = new Socket(serverName, port);
         System.out.println("Just connected to " + client.getRemoteSocketAddres());
         OutputStream outToServer = client.getOutputStream();
         DataOutputStream out = new DataOutputStream(outToServer);
         out.writeUTF("Hello from " + client.getLocalSocketAddress());
         InputStream inFromServer = client.getInputStream();
         DataInputStream in = new DataInputStream(inFromServer);
         System.out.println("Server says " + in.readUTF());
         client.close();
      }catch(IOException e){
         e.printStackTrace();
      }
   }
}

3. buka terminal dan masuk ke direktori tempat Anda menyimpan file source code Anda, misal cd Desktop, cd Downloads, dll
3. compile GreetingServer dengan mengetikkan javac GreetingServer.java (sebelumnya komputer harus sudah terinstall jdk dan jre.
4. jalankan GreetingServer dengan mengetik java GreetingServer (4 digit localhost). contoh java GreetingServer 8888
5. compile GreetingClient pada terminal berbeda dengan mengetik javac GreetingClient.java
6. jalankan client dengan mengetikkan  java GreetingClient localhost 8888 (sesuai dengan localhost server yang dibuat sebelumnya.
7. socket yang dibuat akan memperlihatkan tampilan sebagai berikut.

Referensi: http://www.tutorialspoint.com/java/java_networking.htm

Tidak ada komentar:

Posting Komentar