بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Assalamu 'alaikum warohmatullahi wabarokaatuhTulisan saya kali ini adalah mengenai aplikasi chat client-server sederhana menggunakan bahasa 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(); } } }
import java.io.*;
import java.net.*;
Statement import digunakan untuk mendefinisikan paket yang digunakan dalam program, di sini paket yang digunakan adalah java.net yang digunakan untuk implementasi aplikasi jaringan dan java.io yang digunakan untuk proses input dan output.
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);
}
Lima baris pertama dari kode di atas merupakan deklarasi obyek yang akan digunakan dalam program. Kemudian terdapat blok try-catch yang berisi instansiasi obyek checkServer dengan parameter dari konstruktornya berupa nomor port. Nomor port ini harus sama agar server dan client dapat terhubung.
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);}
Terdapat dua blok try-catch pada kode di atas. Blok try-catch yang pertama digunakan untuk menerima koneksi dengan client serta berisi instansiasi obyek untuk menerima dan mengirim data ke client. Sementara blok try-catch kedua digunakan untuk menerima, memeriksa dan mengirim data ke client.
Kode di atas digunakan untuk menutup koneksi dari client.try{os.close();is.close();clientSocket.close();} catch (IOException ic){ic.printStackTrace();}
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;
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);
}
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);
}
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);
}
}
}
try {Kode di atas digunakan untuk memulai koneksi ke server.
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);
}
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);
}
try {
output = is.readLine();
System.out.println("Dari server: " + output);
} catch (IOException e) {
e.printStackTrace();
}
Terdapat dua blok try-catch pada kode di atas. Blok try-catch yang pertama digunakan untuk menerima input dari pengguna dan mengirim data ke server. Sementara blok try-catch kedua digunakan untuk menerima data dari server.
Kode di atas digunakan untuk menutup koneksi ke server.try{is.close();os.close();cl.close();} catch (IOException x) {System.out.println("Error writing...." + x);}
Berikut adalah hasil dari program tersebut.
Tidak ada komentar:
Posting Komentar
Harap gunakan kata-kata yg sopan dalam berkomentar