Saat ini, penulis akan membahas mengenai cara membangun aplikasi Client-Server TCP sederhana dengan menggunakan Java. Adapun langkah - langkahnya adalah sebagai berikut :
1. Ketikkan kode sumber (source code) pada Notepad, Editplus, atau IDE lainnya, dan saya memilih menggunakan Notepad++ sebagai text editor. Pada aplikasi ini dibutuhkan dua source code, yang masing-masing saya beri nama Server_Client.java (untuk coding server) dan Client_Server.java (untuk coding client). Adapun source code-nya adalah sebagai berikut :
Aplikasi Server
import java.io.*;
import java.net.*;
public class Server_Client {
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();
}
}
}
Aplikasi Client
import java.io.*;
import java.net.*;
public class Client_Server {
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("Error io: " + e2);
}
try {
System.out.println("Dari server: " + output);
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);
}
}
}
2. Kemudian simpan kedua program tadi pada direktori mana saja, dan saya menyimpannya di direktori "F:\pemjar".
3. Setelah disimpan, kemudian buka 2 jendela cmd (command prompt) pada menu Start > Accessories > Command Prompt atau langsung ketikkan cmd pada menu Run untuk mengkompile dan menjalankan program tersebut. Pada masing-masing cmd, ketikkan
F: [enter]
cd pemjar [enter]
maka root direktori akan berubah menjadi "F:\pemjar"
kemudian compile program tersebut dan jalankan dengan cara sebagai berikut :
1. Ketikkan kode sumber (source code) pada Notepad, Editplus, atau IDE lainnya, dan saya memilih menggunakan Notepad++ sebagai text editor. Pada aplikasi ini dibutuhkan dua source code, yang masing-masing saya beri nama Server_Client.java (untuk coding server) dan Client_Server.java (untuk coding client). Adapun source code-nya adalah sebagai berikut :
Aplikasi Server
import java.io.*;
import java.net.*;
public class Server_Client {
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();
}
}
}
Aplikasi Client
import java.io.*;
import java.net.*;
public class Client_Server {
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("Error io: " + e2);
}
try {
System.out.println("Dari server: " + output);
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);
}
}
}
2. Kemudian simpan kedua program tadi pada direktori mana saja, dan saya menyimpannya di direktori "F:\pemjar".
3. Setelah disimpan, kemudian buka 2 jendela cmd (command prompt) pada menu Start > Accessories > Command Prompt atau langsung ketikkan cmd pada menu Run untuk mengkompile dan menjalankan program tersebut. Pada masing-masing cmd, ketikkan
F: [enter]
cd pemjar [enter]
maka root direktori akan berubah menjadi "F:\pemjar"
kemudian compile program tersebut dan jalankan dengan cara sebagai berikut :
Gambar cmd Server
Gambar cmd Client
Pada nomor 1 Gambar cmd Server menunjukkan bahwa aplikasi server telah hidup dan sudah dapat menerima interaksi dari Client berupa kata "salam" (lihat nomor 4 pada Gambar cmd Client), sedangkan nomor 2 Gambar cmd Server menunjukkan bahwa aplikasi server telah hidup kembali dan siap menerima interaksi dari Client lagi, namun ketika Client mengetikkan selain kata "salam", misalkan kata "haii" maka respon Server akan berbeda (lihat nomor 6 pada Gambar cmd Client).
Nomor 3 pada Gambar cmd Client menunjukkan kesalahan dalam menjalankan aplikasi Client, dimana untuk menjalankannya harus menuliskan nama lokal komputer yang dijadikan server saat menjalankan aplikasi Client.
Nomor 4 pada Gambar cmd Client menunjukkan cara yang benar untuk menjalankan aplikasi Client yakni dengan menuliskan nama lokal komputer yang dijadikan Server, di sini nama lokal komputernya adalah Findi_Ayu sehingga penulisannya adalah java Client_Server Findi_Ayu [enter].
Nomor 5 pada Gambar cmd Client menunjukkan bahwa aplikasi Server hanya bisa menerima satu kali interaksi dari Client, sehingga bila ingin melakukan interaksi lagi harus menjalankan (menghidupkan) lagi aplikasi Server-nya.
Nomor 6 pada Gambar cmd Client menunjukkan bila Client mengetikkan kata selain "salam" maka Server tidak akan mengerti dan memberikan respon "Maaf. Saya tidak mengerti".
Nomor 3 pada Gambar cmd Client menunjukkan kesalahan dalam menjalankan aplikasi Client, dimana untuk menjalankannya harus menuliskan nama lokal komputer yang dijadikan server saat menjalankan aplikasi Client.
Nomor 4 pada Gambar cmd Client menunjukkan cara yang benar untuk menjalankan aplikasi Client yakni dengan menuliskan nama lokal komputer yang dijadikan Server, di sini nama lokal komputernya adalah Findi_Ayu sehingga penulisannya adalah java Client_Server Findi_Ayu [enter].
Nomor 5 pada Gambar cmd Client menunjukkan bahwa aplikasi Server hanya bisa menerima satu kali interaksi dari Client, sehingga bila ingin melakukan interaksi lagi harus menjalankan (menghidupkan) lagi aplikasi Server-nya.
Nomor 6 pada Gambar cmd Client menunjukkan bila Client mengetikkan kata selain "salam" maka Server tidak akan mengerti dan memberikan respon "Maaf. Saya tidak mengerti".