5. Membangun Aplikasi Client-Server TCP Sederhana
Source Code
import
java.io.*;
import
java.net.*;
public class
simpleServer {
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();
}
}
}
Output
Logika Program
Program di atas adalah
simpleServer.java yang bertindak sebagai server. Server bertugas untuk menerima
dan memproses request dari client. Saat program ini dijalankan, maka server
akan aktif dengan mencetak "Aplikasi server hidup...". Saat server
aktif, server menunggu masukan dari client berupa kata kunci yaitu
"salam". Jika client menuliskan kata selain "salam", maka
server akan merespon "Maaf, saya tidak mengerti".
Source Code :
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) {
}
}
}
Output
Logika Program
Program ini berperan sebagai
client. Client memasukkan kata kunci "nama
dan diteruskan ke server. Jika kata kunci cocok, maka server akan
merespon "menjawab nama".