Selasa, 01 Mei 2012

Membangun Aplikasi Client-Server TCP sederhana Menggunakan Java


Saat ini, penulis akan membahas mengenai cara membangun aplikasi Client-Server TCP sederhana dengan menggunakan Java. Adapun langkah - langkahnya adalah sebagai berikut :

1. Ketikkan kode sumber (source code) pada Notepad, Editplus, atau IDE lainnya, dan saya memilih menggunakan Notepad++ sebagai text editor. Pada aplikasi ini dibutuhkan dua source code, yang masing-masing saya beri nama simpleClient.java (untuk coding server) dan simpleServer.java (untuk coding client). Adapun source code-nya adalah sebagai berikut :

Coding Server :

import java.io.*;
import java.net.*;

public class simpleServer {
  public final static int TESTPORT = 5000;
  public static void main(String args[]) {
          ServerSocket checkServer = null;
          String line;
          BufferedReader is = null;
          DataOutputStream os = null;
          Socket clientSocket = null;
         
          try {
            checkServer = new ServerSocket (TESTPORT);
            System.out.println("Aplikasi Server hidup... ");
          } catch (IOException e) {
            System.out.println(e);
          }

          try {
            clientSocket = checkServer.accept();
            is = new BufferedReader (new InputStreamReader(clientSocket.getInputStream()));
            os = new DataOutputStream(clientSocket.getOutputStream());
          } catch (Exception ei) {
          ei. printStackTrace();
          }
          try {
            line = is.readLine();
            System.out.println ("Terima : " + line);
            if (line.compareTo("salam") == 0 ) {
                   os.writeBytes("salam juga");
            } else {
                   os.writeBytes("Maaf, saya tidak mengerti");
            }
          } catch (IOException e) {
            System.out.println(e);
          }
          try {
            os.close();
            is.close();
            clientSocket.close();
          } catch (IOException ic) {
            ic.printStackTrace();
          }
  }
}



Coding Client :

import java.io.*;
import java.net.*;

public class simpleClient {
  public final static int REMOTE_PORT = 5000;
  public static void main (String args[]) throws Exception {
  Socket cl = null;
  BufferedReader is        = null;
  DataOutputStream os   = null;
  BufferedReader stdin = new BufferedReader(new
InputStreamReader(System.in));
String userInput = null;
String output = null;

// Membuka koneksi ke server pada port REMOTE_PORT
try {
  cl = new Socket(args[0], REMOTE_PORT);
  is = new BufferedReader(new
InputStreamReader(cl.getInputStream ()));
  os = new DataOutputStream(cl.getOutputStream());
} catch(UnknownHostException e1) {
  System.out.println("Unknown Host: " + e1);
} catch (IOException e2) {
  System.out.println("Erorr io: " + e2);
}

// Menulis ke server
try {
  System.out.print("Masukkan kata kunci : ");
  userInput = stdin.readLine() ;
  os.writeBytes(userInput + "\n");
}  catch (IOException ex) {
System.out.println("Error writing to server... " + ex);
}

// Menerima tanggapan dari server
try {
  output = is.readLine() ;
  System.out.println("Dari server: " + output);
} catch (IOException e) {
  e.printStackTrace() ;
}

// close input stream, output stream dan koneksi
try {
  is.close();
  os.close();
  cl.close();
} catch (IOException x) {
  System.out.println("Error writing...." + x);
}
}
}

2. Kemudian simpan kedua program tadi pada direktori mana saja, dan saya menyimpannya di direktori
 "D:\tugas progjar\D1-5".

3. Setelah disimpan, kemudian buka 2 jendela cmd (command prompt) pada menu Start > Accessories > Command Prompt atau langsung ketikkan cmd pada menu Run untuk mengkompile dan menjalankan program tersebut. Pada masing-masing cmd, ketikkan D: [enter] cd tugas progjar [enter] cd D1-5 [enter]
maka root direktori akan berubah menjadi " D:\tugas progjar\D1-5" kemudian compile program tersebut dan jalankan dengan cara sebagai berikut :

Output Server

Output Client

Pada nomor 1 Gambar cmd Server menunjukkan bahwa aplikasi server telah hidup dan sudah dapat menerima interaksi dari Client berupa kata "salam" (lihat nomor 3 pada Gambar cmd Client), sedangkan nomor 2 Gambar cmd Server menunjukkan bahwa aplikasi server telah hidup kembali dan siap menerima interaksi dari Client lagi, namun ketika Client mengetikkan selain kata "salam", misalkan kata "haiii vyan" maka respon Server akan berbeda (lihat nomor 4 pada Gambar cmd Client) dan pada Gambar cmd Client menunjukkan bila Client mengetikkan kata selain "salam" maka Server tidak akan mengerti dan memberikan respon "Maaf. Saya tidak mengerti".

0 komentar:

Posting Komentar