Disini saya mencoba membuat aplikasi client server TCP
sederhana, server akan membuat soket server dan menerima permintaan koneksi
dari satu client saja. Setelah itu server akan menunggu data
yang dikirim oleh client. Jika pesan yang dikirim oleh client adalah “salam”
maka server akan
membalas mengirim pesan “salam juga” . Selain dari itu, server akan mengirim
pesan “Maaf,
saya tidak mengerti”. Kurang lebih seperti itu
berikut penjelasan koding nya:
Buat program server di bawah ini, simpan dengan nama
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();
}
}
}
Buat program client di bawah ini, simpan dengan nama
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;
// 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);
}
}
}
Lalu kompile program pada command promt file
simpleServer.java dan jalankan, setelah itu simpleClient.java dan
jalankan dapat dilihat pada gambar dibawah ini
Pertama kompile simpleServer.java maka akan keluar informasi
"Aplikasi Server Hidup"
Setelah itu kompile simpleClient.java, jalankan dan masukan
kata kunci maka server akan mendapat pesan salam. Secara otomatis Client akan
menjawab salam juga.