SERVER

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


Pada pertama kali aplikasi di jalankan yang pertama-tama yang akan di cek adalah portnya terlebih dahulu jika portnya 5000 maka akan menjalankan programnya,Pada try yang kesatu server socket akan mengirimkan response,jika status seversocket null maka akan di cetak pada output berupa aplikasi server hidup.pada try yang keduanya berfungsi sebagai penerima request client dengan clientsocket,pada try yang ketiga akan membandingkan dengan pesan yang diterima jika salam maka server akan mencetak salam juga,jika selain itu server akan mencetak maaf,saya tidak mengerti,blok try ke empat akan untuk menutup koneksi.

CLIENT

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


Aplikasi dengan listingan diatas akan berjalan pada komputer client,dimana dimanfaatkan port 5000 sebagai jalur komunikasi.pada try kesatu digunakan untuk membuka koneksi ke server,jika tidak berhasil membuka koneksi keserver maka akan keluar output host tidak di temukan atau unknown host,pada try kedua berfungsi untuk mencetak ke server dengan masukkan kata salam agar pesan dapat di terima pada server,pada try ketiga berfungsi sebagai penerima response dari server dan menampilkankannya,pada try keempat untuk menutup koneksi.