Wednesday, June 8, 2016

PROGRAM CLIENT-SERVER TCP MENGGUNAKAN JAVA

Untuk membuat program client-server tcp ini, memerlukan dua source code program. Satu source code untuk server dan satu lagi untuk client. Berikut ini merupakan source code yang digunakan:

simpleServer.java
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();
            }
      }
}

simpleClient.java
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);
            }
      }
}

Program di atas tidak hanya menggunakan jaringan, tetapi juga menggunakan input dan output untuk saling berkomunikasi. Pertama-tama, ketika program simpleServer.java berhasil dieksekusi, yang dilakukan adalah checkServer = new ServerSocket (TESTPORT);, jika berhasil aktif, maka akan muncul pesan "Aplikasi Server Hidup ...". Kemudian lakukan eksekusi pada program simpleClient.java. Program akan menghubungan diri dengan server yang telah aktif dan menampilkan pesan "Masukkan Kata Kunci: ", kata kunci ini terdapat pada program simpleServer.java, jika kata kunci sesuai, yaitu salam, maka server akan mengirimkan pesan balasan "Selamat Datang ...". Namun apabila kata kunci tidak sesuai, maka pesan yang akan tampil adalah "Maaf, saya tidak mengerti" dan program berhenti melakukan eksekusi. Kata kunci ini dapat diubah sesuai dengan kepentingan.

Kompilasi kedua program diatas dengan :
$ javac simpleServer.java
$ javac simpleClient.java

Jalankan kedua program tersebut dikomputer anda. Pertama jalankan server, (buka
jendela console shell lebih dulu), dan tunggu koneksi client
$ java simpleServer

Untuk menjalankan program client buka jendela console shell baru dan ketikkan.
$ java simpleClient <nama-komputer-server>

Berikut ini adalah output dari program client-server tcp:





No comments:

Post a Comment