Kamis, 09 Agustus 2018

Konfigurasi TCP


Cara menggunakan bahasa pemrograman Python. Jalankan kedua VM yaitu VM Server dan VM Client, lalu buat script untuk sisi Server dengan menggunakan perintah sebagai berikut.


Kemudian isikan script seperti pada gambar berikut ini.


Setelah selesai memasukkan script tersebut kita bisa langsung keluar sekaligus menyimpan nya, lalu membuat script untuk sisi Client dengan perintah sebagai berikut :


Kemudian kita isikan lagi script tersebut seperti berikut ini.


Jika sudah, kita bisa langsung keluar dan menyimpannya, kemudian jalankan script yang terdapat pada sisi Server dengan perintah sebagai berikut.


Setelah itu kita bisa menjalankan script pada sisi Client dengan menggunakan perintah sebagai berikut.


Setelah menjalankan perintah untuk mengaktifkan server, kita akan mendapatkan pemberitahuan sebagai berikut pada sisi Server.


Sementara pada sisi Client kita akan mendapatkan pesan pembuka yang berisi panduan perintah yang dapat digunakan oleh Client. Disini akan diminta untuk mengetikkan nama kita pada sisi Client yang digunakan sebagai identitas kita pada aplikasi tersebut yang akan terlihat seperti gambar berikut.


Setelah itu kita bisa mulai mengirimkan pesan dari sisi Client ke sisi Server.


Ketika kita mengirim pesan dari Client ke Server maka pesan kita akan muncul dengan format sebagai berikut.


Kemudian gunakan perintah "keluar", dimana perintah ini akan mengeluarkan kita dari sisi Client dan menghentikan script pada sisi Server.


Hasil dari perintah "keluar" tersebut akan menampilkan pemberitahuan sebagai berikut pada sisi Client:


Senin, 06 Agustus 2018

Cara Membuat Aplikasi Client - Server TCP Sederhana


LISTING PROGRAM
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;
    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);
    }
    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);
    }
    try {
      output = is.readLine();
      System.out.println("Dari server: " + output);
    } catch (IOException e) {
      e.printStackTrace();
    }
    try {
      is.close();
      os.close();
      cl.close();
    } catch (IOException x) {
      System.out.println("Error writing...." + x);
    }
  }
}



LOGIKA PROGRAM

Listing program kali ini berfungsi untuk membuat aplikasi client-server TCP sederhana  menggunakan bahasa pemrogrograman java.

SERVER

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

Listing ini akan memanggil semua fungsi yang terdapat pada library library java.io yang digunakan untuk proses input dan output melalui data stream, dan java.net yang digunakan  untuk implementasi jaringan.

public class simpleServer {
  public final static int TESTPORT = 5000;

Nama class pada program ini yaitu simpleServer, dan kita akan mendeklarasikan port 5000 yang akan digunakan sebagai jalur komunikasi.

  public static void main(String args[]) {
    ServerSocket checkServer = null;
    String line;
    BufferedReader is = null;
    DataOutputStream os = null;
    Socket clientSocket = null;

Listing ini digunakan untuk mendeklarasikan variable yang akan dipakai di dalam program ini, yaitu : checkServer sebagai ServerSocket yang bernilai null (kosong), is sebagai BufferedReader yang bernilai null (kosong), os sebagai DataOutputStream yang bernilai null (kosong), clientSocket sebagai socket yang bernilai null (kosong), dan line dengan tipe data string.

    try {
      checkServer = new ServerSocket(TESTPORT);
      System.out.println("Aplikasi Server hidup ...");
    } catch (IOException e) {
      System.out.println(e);
    }

Pada fungsi  try pertama, checkServer akan diberi nilai berupa nomor port. Kemudian server akan mencetak Aplikasi Server hidup ... pada layar monitor. Apabila ada error yang terjadi pada saat server dijalankan, maka error tersebut akan ditangani oleh catch.

    try {
      clientSocket = checkServer.accept();
      is = new BufferedReader(new
      InputStreamReader(clientSocket.getInputStream()));
      os = new DataOutputStream(clientSocket.getOutputStream());
    } catch (Exception ei) {
      ei.printStackTrace();
    }

Fungsi try kedua digunakan untuk inisiasi is dan os sebagai objek input dan output, serta untuk menerima request client dengan clientsocket.

    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);
    }

Fungsi try ketiga digunakan untuk menerima dan mengirim pesan. Variable line digunakan sebagai variable penampung inputan dari client, lalu server akan mencetak Terima : diikuti dengan pesan yang diterima dari client.
Apabila server menerima pesan salam, maka server akan membalas pesan salam juga. Apabila server menerima pesan lainnya maka server akan membalas Maaf, saya tidak mengerti”.

    try {
      os.close();
      is.close();
      clientSocket.close();
    } catch (IOException ic) {
      ic.printStackTrace();
    }
  }
}

Fungsi try keempat digunakan untuk menutup input, ouput, dan koneksi.



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

Listing program ini digunakan untuk memanggil semua fungsi yang terdapat pada library java.io yaitu library untuk proses input dan output melalui data stream, dan java.net yaitu library untuk implementasi jaringan.

public class simpleClient {
  public final static int REMOTE_PORT = 5000;

Nama class pada program ini yaitu simpleClient, dan kita akan mendeklarasikan port 5000 yang akan digunakan sebagai jalur komunikasi.

  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;

Kemudian kita akan mendeklarasikan variable yang akan dipakai di dalam program ini, yaitu : cl sebagai Socket yang bernilai null (kosong), is sebagai BufferedReader yang bernilai null (kosong), os sebagai DataOutputStream yang bernilai null (kosong), serta userInput dan output yang bernilai null (kosong) dengan tipe data string.

    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);
    }

Pada fungsi try pertama digunakan untuk memulai koneksi dengan server menggunakan port yang telah dideklarasikan sebelumnya. Apabila terjadi error pada saat koneksi, maka catch akan berjalan dan memberikan pesan error yang terjadi.

    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);
    }

Funfsi try kedua digunakan untuk menuliskan atau mengirim pesan ke server. Pertama program akan mencetak Masukkan kata kunci: . Kemudian client akan menginput pesan yang nantinya akan disimpan di dalam variable userInput, dan akan dikirimkan ke server dengan perintah os.writeBytes().

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

Fungsi try ketiga digunakan untuk menerima pesan dari server dan menampilkannya. Kemudian program akan mencetak string Dari server: diikuti dengan variable output, yang merupakan pesan dari server.  

    try {
      is.close();
      os.close();
      cl.close();
    } catch (IOException x) {
      System.out.println("Error writing...." + x);
    }
  }
}

Fungsi try keempat digunakan untuk menutup input, ouput, dan koneksi.

Output :


  • Compile file simpleServer.java dan simpleClient.java





  • Aktifkan simpleServer.java


  •  Input pesan "salam"


  •  Output akhir

Konfigurasi TCP

Cara menggunakan bahasa pemrograman Python. Jalankan kedua VM yaitu VM Server dan VM Client, lalu buat script untuk sisi Server dengan men...