Chat Server (Multi Client)!!!!!!!

Network ProgramMing Pembuatan Chat server dan Multi Client Dalam Mengirim Pesan dan Balasan!!!!


Hallo sobat coders,,, 
Dalam kesempatan kali ini kita akan membahas tentang Chat Server Multi Client dalam berkirim Pesan. Menerima dan Membalas pesan. langsung saja kita mulai pembahasan nya berikut :

Dan berikut yang harus disiapkan
1.SourceCode Chat Server dan Multi Client
2.Aplikasi pengolah boleh menggunakan (sublime,VSCode,Netbeans)
3.Git Bush

langsung aja ke pembahasan nya yang pertama adalah membuat sourcecode di vscode atau dinetbeans bebas pengguna menggunakan apa

ChatServerMulti


import java.io.*;//(class input output dot all) untuk mengakses semua kelas input dan output 
import java.net.*;//class net untuk mengakses semua kelas network/komunikasi jaringan yang ada

public class ChatServerMulti {

    private static ServerSocket servSock;//membuat objek untuk serversocket dengan nama servsock
    private static final int PORT = 1234;//membuat objek bernama port yang berisi nomor port

    public static void main(String args[]) throws IOException {
//method main/utama yang menggunakan Method throws untuk Membaca Input Data String
        System.out.println("Opening Port.....\n"); //menampilkan kata openign port
        try { ////Blok try digunakan untuk menempatkan kode-kode program Java yang memungkinkan terjadinya exception.
            servSock = new ServerSocket(PORT); //mengecek port server
        } catch (IOException e) { //jika blok try error maka sistem akan menjalankan blok catch
            System.out.println("Unable to attach to port");//dan akan menampilkan unable to attach to port
            System.exit(1); //lalu sistem akan otomatis tertutup.
        }
        do {//perulangan do
            Socket client = servSock.accept(); //untuk menghubungkan dan menunggu persetujuan dari client
            ClientHandler handler = new ClientHandler(client);//penamaan handler untuk client
            handler.start();//memulai handler
        } while (true); //akan terus berulang jika bernilai true
    }
}

class ClientHandler extends Thread { //membuat class turunan clienthandler  

    private Socket client//definisi objek socket sebagai client
    private BufferedReader in// definisi untuk objek bufferedreader
    private PrintWriter out//definisi untuk objek printerwriter

    public ClientHandler(Socket socket) { //class client
        client = socket; //client samadengan socket
        try {//memulai blok try
            in = new BufferedReader(new InputStreamReader(client.getInputStream())); //mengambil inputan dari objek client
            out = new PrintWriter(client.getOutputStream(), true); ///mengirimkan data ke client
        } catch (IOException e) { //blok catch
            e.printStackTrace();
        }
    }

    public void run() { //membuat class baru yaitu run
        try { //memulai blok try
            String received//membuat variabel dengan nama received dengan tipe string
            do { //perulangan do
                received = in.readLine(); // menginput data
                System.out.println(received); //menampilkan data inputan received
                out.println("ECHO : " + received);//menampilkan kata echo dan hasil inputan dari reveived
            } while (!received.equals("QUIT")); //jika received sama dengan quit
        } catch (IOException e) { //blok catch
            e.printStackTrace();
        } finally { //blok finally
            try { //memulai blok try
                if (client != null) { //jika client nya berisi null atau kosong 
                    System.out.println("Closing down connection");//maka akan tampil Closing down connection
                    client.close(); //dan sistem akan langsung tertutup
                }
            } catch (IOException e) { //blok catch
                e.printStackTrace();
            }
        }
    }
}



ChatClientMulti


//import java.io.BufferedReader untuk mengambil input dari keyboard dan 
//membaca input dari file dan jaringan.
//import java.io.IOException; // termasuk class bufferedreader.
//import java.io.InputStreamReader;// termasuk class bufferedreader.
//import java.io.PrintWriter; //class untuk input output untuk mengirim data ke client.
import java.io.*; //(class input output dot all) untuk mengakses semua kelas input dan output.
import java.net.*; //class net untuk mengakses semua kelas network/komunikasi jaringan yang ada.

public class ChatClientMulti { //nama class utama dan nama.

    private static InetAddress host//membuat objek untuk pembaca ip address (inetaddress) dengan nama host
    private static final int PORT = 1234//membuat objek bernama port yang berisi nomor port
    private static Socket link//membuat objek untuk socket dengan nama link
    private static BufferedReader in//Membaca input dari user melalui konsol dengan menggunakan BufferedReader
    private static PrintWriter out//membuat objek untuk printwriter dengan nama out untuk mengirim data ke client.
    private static BufferedReader keyboard;//membuat objek baru untuk inputan bufferedreader untuk keyboard dengan nama keyboard.  

    public static void main(String args[]) { // method utama dari program dan akan di jalankan pertama kali oleh sistem.
        try { //Blok try digunakan untuk menempatkan kode-kode program Java yang memungkinkan terjadinya exception. 
            host = InetAddress.getLocalHost(); //mengecek ip address di localhost komputer kita
            link = new Socket(host, PORT); //membuat objek link dengan nama socket yang berisi ip dan nomor port.
            in = new BufferedReader(new InputStreamReader(link.getInputStream())); //membuat objek in dari kelas bufferedReader
            out = new PrintWriter(link.getOutputStream(), true);//akan menampilkan sesuatu dari objek link
            keyboard = new BufferedReader(new InputStreamReader(System.in)); //membuat objek keyboard dari kelas bufferedReader
            String messageresponse//membuat variabel
            do { //perulangan do 
                System.out.print("Enter message(QUIT to exit)"); //menampilkan "Enter message(QUIT to exit)"
                message = keyboard.readLine(); //merupakan inputan dari keyboard
                out.println(message);// akan menampilkan varibel message
                response = in.readLine(); //menuliskan variabel respon
                System.out.println(response);//menampilkan variabel respon
            } while (!message.equals("QUIT")); //jika variabel message sama dengan kata quit
        } catch (UnknownHostException e) { //Blok catch digunakan untuk menangkap kesalahan yang terjadi pada blok try. 
            System.out.println("Host ID not found!"); //menampilkan kalimat host id not found
        } catch (IOException e) { //Blok catch digunakan untuk menangkap kesalahan yang terjadi pada blok try. 
            e.printStackTrace(); //pengecekan kesalahan kembali
        } finally {
//            Kode program pada blok finally akan selalu dijalankan, tidak peduli
//apakah terjadi eksepsi atau tidak. 

            try {
                if (link != null) { //jika objek link bernilai null maka 
                    System.out.println("Closing down connection"); //akan tampil kata closing down connetction
                    link.close();//lalu sistem akan otomatis tertutup
                }
            } catch (IOException e) { //jika blok try error maka akan dijalankan perintah catcth
                e.printStackTrace();
            }
        }
    }
}


Dan lihat hasil dan cara kerja dari program yang dibuat menggunakan gitbush seperti tampilan dibawah ini. 



Komentar

Postingan populer dari blog ini

Tutor Membuat Login Databases Pada Java NetBeans IDE 8.2 dan MySQL XAMPP