Program Client - Server TCP Sederhana

Rabu, 12 Juli 2017

Membuat Program Client - Server yang sederhana membutuhkan 2 class program (java dalam percobaan ini), yaitu kita beri nama simpleServer untuk servernya dan simpleClient untuk clientnya.

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


Saat aplikasi ini dijalankan, sisi server akan memanfaatkan layanan TCP. Pertama kali aplikasi akan mengecek jika port 5000 sedang digunakan atau tidak. Pada kode try pertama memiliki server socket untuk mengirim response, jika status serversocket null maka akan dicetak “aplikasi server hidup” pada port 5000. Pada kode try kedua berfungsi untuk menerima request client dengan clientsocket. Pada kode try ketiga akan membandingkan dengan pesan yang diterima jika "salam" maka server akan menulis "salam juga", jika pesan lainnya yang diterima maka server akan mengirimkan "maaf, saya tidak mengerti".
kode try terakhir berfungsi untuk menutup koneksi.






Program server tersebut akan menunggu kiriman dari client.

2.simpeClient.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);
}}}

Memanfaatkan port 5000 sebagai jalur komunikasi data pada TCP, dengan kode try pertama berfungsi untuk membuka koneksi ke server, jika gagal atau host tidak ditemukan akan muncul unknown host. Kode try berikutnya berfungsi untuk menulis ke server dengan memasukkan kata agar pesan dapat diterima server. Blok try selanjutnya berfungsi untuk menerima response dari server dan menampilkannya. Lalu terakhir akan menutup koneksi,input stream dan output stream.


Gambar diatas adalah dari sisi client, selain kata 'salam' , server akan membalas 'Maaf, sata tidak mengerti'.






Sisi Server menampilkan kata yang diterima dan menjalankan fungsi untuk membalas ke client.

Copyright @ 2013 BELAJAR ANEH. Designed by Templateism | MyBloggerLab

Mengenai Saya

Foto saya
Saya adalah Saifurrahim (Saif: Pedang, Ar Rahim: Yang Maha Penyayang). Entah apa maksud nama tersebut, tapi yang jelas itu adalah Do'a mereka untuk saya.