Pages - Menu

Senin, 30 April 2012

Membangun Aplikasi Client-Server TCP Sederhana

Demo D1-5

Membangun Aplikasi Client-Server TCP Sederhana

Pemrograman Soket di Java
Java menyediakan obyek  Socket dan  ServerSocket  untuk komunikasi soket TCP.
ServerSocket digunakan pada sisi aplikasi server, sedangkan Socket digunakan baik pada
sisi aplikasi server maupun  client. Berikut adalah langkah-langkah membuat komunikasi
soket di java:

Buatlah file dengan nama simpleServer.java
Isikan kode program sebagai berikut:
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();
    }

  }
}

lalu buat program untuk sisi client dengan nama  simpleClient.java, dan isikan kode program sebagai berkut:
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);
    }

  }
}

Dibawah ini adalah petunjuk Untuk menjalankan program:
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

pada contoh ini saya menggunakan satu komputer, dan program dijalankan dengan membuka dua command prompt, dan hasilnya adalah:


Maka output dari sisi Client dan server adalah :
Client servel1






 

Client Server 2




Tidak ada komentar: