Melakukan koneksi kirim pesan antar socket dengan port / host menggunakan bahasa java
Assalamu’alaikum
warahmatullahi wabarakatuh
Pada pada kali ini saya akan
membahas mengenai Chat antar port socket, nah pada kali ini kita menggunakan
server sebagai penerima/receiver
messagenya lalu client sebagai pengirim pesan kepada server.
Nah saya akan membahas mengenai
satu-persatu bagian dari beberapa fungsi atau penjelasan code dari tiap
kegunaannya.
Bagian pertama kita akan membahas mengenai class ChatServer.java
import java.io.*;
//mengimportkan library input dan output
import java.net.*;//
mengiimportkan library network
public class ChatServer {
//memberikan nama class sekaligus nama file penyimpanan
private static ServerSocket servSock;
//membuat variabel Server Socket yang bersifat private
private static final int PORT = 1234;
//membuat variabel port dengan nilai = 1234
public static void main(String args[]) {
//membuka argument dengan PSVM
System.out.println("Opening Port.....\n");
//menampilkan output
try {
//melakukan percobaan eksekusi yang akan dijalankan
servSock = new ServerSocket(PORT);
//membuat variabel scanning serversocket atau port
} catch (IOException e) {
//pengecualian jika server socket tidak ditemukan maka yang tercetak
adalah isi dari system.out.println dibawah ini
System.out.println("Unable to attach to port");
System.exit(1);
//mengakhiri perintah
}
do {
//perulangan menggunakan do while untuk memastikan apabila port terbaca
maka menjalankan perintah pada class run();
run();
} while (true);
}
private static void run() {
//class run
Socket link = null;
//socket dengan variabel link yang tidak diberi nilai
try {
//melakukan percobaan eksekusi yang akan dijalankan
link = servSock.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(link.getInputStream()));
PrintWriter out = new PrintWriter(link.getOutputStream(), true);
int numMessages = 0;
String message = in.readLine();
//melakukan pembacaan pada pesan
while (!message.equals("close")) {
//jika program dijalankan dan dikirim sebuah pesan dari class ChatClient
System.out.println("Message received");
numMessages++;
out.println("Message " + numMessages + ":" + message);
message = in.readLine();
}
out.println(numMessages + " message received.");
//mencetak atau menyimpan pesan yang dikirim oleh class ChatClient
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
//melakukan eksekusi jika program diakhiri oleh user
System.out.println("*********Closing Connection****");
//menampilkan message box pada user untuk menutup koneksi hubungan
dengan class ChatClient
link.close();
//mengakhiir program dan menutup program
} catch (IOException e) {
System.out.println("Unable to disconnect");
System.exit(1);
}
}
}
}
Bagian kedua kita akan membahas mengenai class ChatClient.java
import java.io.*;
//mengimportkan library input dan output
import java.net.*;//
mengiimportkan library network
public class ChatClient {
//Membuat class dan nama file penyimpanan
private static String strHost;
//membuat variabel strhost dengan class private dan tipe data string
private static InetAddress host;
//membuat variable host dengan class private
private static final int PORT = 1234;
//membuat variabel port dengan nilai = 1234
public static void main(String args[]) {//membuka
argument dengan PSVM
try {
//melakukan percobaan ekseksui
host = InetAddress.getLocalHost();
//mendapatkan alamat host dari laptop masing-masing
} catch (UnknownHostException e) {
System.out.println("Host ID Not Found");
//output jika host tidak dapat ditemukan
System.exit(1);
//mengakhiri percobaan
}
run();
//menjalankan perintah dari class run
}
private static void run() { //class run
Socket link = null;
//socket dengan variabel link yang tidak diberi nilai
try {
//melakukan percobaan eksekusi
link = new Socket(host, PORT);
//melakukan eksekusi perintah pada port/host dari laptop
BufferedReader in = new BufferedReader(new InputStreamReader(link.getInputStream()));
PrintWriter out = new PrintWriter(link.getOutputStream(), true);
BufferedReader userEntry = new BufferedReader(new InputStreamReader(System.in));
String message, response;
do {
//melakukan perulangan menggunakan do while
System.out.print("Enter message : ");
//mencetak teks perintah
message = userEntry.readLine();
//memasukan /input pesan
out.println(message);
response = in.readLine();
System.out.println("SERVER " + response);
//server melakukan respon/tanggapan pesan dari class MyCliet
} while (!message.equals("close"));
} catch (IOException e) {
e.printStackTrace();
} finally {
//melakukan final pada percobaan
try { //melakukan percobaan eksekusi
System.out.println("closing connection");
//
link.close();
} catch (IOException e) {
System.out.println("Unable to disconnect!");
System.exit(1);
}
}
}
}
Untuk contoh dari hasil program diatas maka dapat kita lihat seperti berikut :
Komentar
Posting Komentar