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




»»  READMORE...

Pemrograman Socket Bag 4

Demo D1-4

Pada Artikel kali ini yang akan di ujicoba adalah menampilkan IPAddress dari hostname yang diinputkan bersamaan dengan perintah untuk running program.
Pada contoh program ini nama file java yang akan dijalankan adalah NsLookup.java .Perintah yg digunakan untuk menjalankan program adalah java NsLookup .

berikut ini baris perintah yang digunakan:
import java.net.*;

public class NsLookup {
  public static void main(String args[]) {

    if (args.length == 0) {
      System.out.println("Pemakaian: java NsLookup ");
      System.exit(0);
    }
    String host = args[0];
    InetAddress address = null;

    try {
      address = InetAddress.getByName(host);
    } catch(UnknownHostException e) {
      System.out.println("Unknown host");
      System.exit(0);
    }

    byte[] ip = address.getAddress();
    for (int i=0; i      if (i > 0) System.out.print(".");
      System.out.print((ip[i]) & 0xff);
    }

    System.out.println();
  }
}


output dari perintah diatas adalah:
»»  READMORE...

Pemrograman Socket Bag 3

 Demo D1-3

Pada contoh program kali ini kita akan memanfaatkan informasi IP Address untuk mendapatkan nama komputer yang IPnya telah ditentukan.
Berikut ini adalah contoh kode programnya

import java.net.*;
public class IPtoName {
  public static void main(String args[]) {

    if (args.length == 0) {
      System.out.println("Pemakaian: java IPtoName ");
      System.exit(0);
    }

    String host = args[0];
    InetAddress address = null;

    try {
      address = InetAddress.getByName(host);
    } catch (UnknownHostException e) {
      System.out.println("invalid IP - malformed IP");
      System.exit(0);
}

    System.out.println(address.getHostName()); 
 }
}


Program dijalankan dengan perintah:
java IPtoName

Jadi, setelah dicompile, jalankan program dengan perintah tersebut. Saya ingin menjalankan perintah tersebut untuk menemukan nama komputer berdasarkan IP Address pada komputer saya. IP address dapat di cek lewat cmd dengan mengetikan "ipconfig", setelah itu kita akan mendapatkan informasi IP Address kita, dan IP inilah yang akan kita uji coba dalam program ini.

Berikut ini tampilan cara penggunaan ipconfig dan uji coba program berdasarkan IP yang didapat:


Dari perintah "ipconfig" didapat IP Address dengan nilai 10.160.35.97, dan IP ini akan kita ujicobakan pada program dengan mengetikan perintah java IPtoName 10.160.35.97, Maka hasil yang didapat adalah opannapo-58e689. Pada artikel sebelumnya telah dicontohkan sebuah program yang dapat menampilkan Komputer Name. Karena Komputer yang digunakan sama, maka hasil untuk Komputer Namepun akan demikian.

»»  READMORE...