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 messageresponse;

            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

Postingan populer dari blog ini

PANDUAN INSTALASI MIKROTIK DI VIRTUALBOX

The combination looping for and compilation education with Java Language's

JavaPoint networking port socket server to Client (mulitserver dan multiclient)