CHAT NETWORK PROGRAMMING

 Chat Network Programming


    Assalamualaikum Wr Wb. Kembali lagi di blog saya, pada kesemptan kali ini kita akan membahas tentang Chat Multi Client dan Single Server. Pada pembahasan kali ini kita bisa menggunakan beberapa client (lebih dari 1) dengan hanya menggunakan satu server induk yang mana ia nantiknya bisa mengrim pesan dari client dan akan muncul di layar server. Baiklah ini merupakan Sourcodenya:

1. ChatServerMulti
        Pada Sourcode di bawah merupakan Sourcode ChatServerMulti beserta penjelasan Sourcodenya.

import java.io.*; // untuk memasukan input dan output
import java.io.*; // untuk menghubungkan ke jaringan
public class ChatServerMulti{ // nama class kita
    private static ServerSocket servSock;
    private static final int PORT = 1234; // menggunakan tipe data integer dengan port
                                             1234
    public static void main(String args []) throws IOException{ // IOException = untuk
    penanganan terhadap error yang akan terjadi
        System.out.println("Opening Port.....\n"); // mencetak yang di dalam kutip
        try{ // pertnyataan yang berpotensi yang mengakibatkan exception
            servSock = new ServerSocket(PORT); //membuat varibel baru
        }catch(IOException){ // untuk menagani jenis exception
            System.out.println("Unnable to attach to port"); // mencetak hasil
            System.exit(1); // sistem akan keluar
        }
        do{
            Socket client = servSock.accept();
            clientHandler handler = new clientHandler(client); // membuat objek baru
            handler.start(); // objek akan dimulai
        }while(true);
    }
}
class ChatHandler extends Thread { //kelas chathandler
    private Socket client;
    private BufferedReader in;//BufferedReader = untuk mendapatkan inputan dari kyboard
    private PrintWriter out;
    public ClientHandler(Socket socket){
        client = socket ;
        try{
            in = new BufferedReader (new
            inputStreamReader(client.getInputStream()));
            out = new PrintWriter(client.getOutputStream(),true);
        }catch(IOException e){
            e.printStackTrace(); //printStackTrace = berfungsi untuk mencegah ataupun
            untuk menunjukan dimana tejadinya error
        }   
    }
public void run(){
    try{
        String received; // tipe data string dan datanya akan tersimpan
        do{
            received = in.readLine(); // data yang tersimpan akan di baca oleh sistem
            System.out.println(received);
            System.out.println("ECHO : " + received);//menampilkan echo dan data yang
            tersimpan tadi
        }while(!received.equals("QUIT"));//jika datanya tidak tersimpan maka dia akan
        keluar
    }catch(IOException e){
        e.printStackTrace();
    }
    finally{
        try{
            if(client!=null){
                System.out.println("Closing down connection");
            }
        }catch(IOException e){
            e.printStackTrace();
        }
    }
    }
    }
}

2. ChatClientMulti
        Sourcode di bawah merupakan sourcode dari si client dan di sampingnya ada penjelasan tentang sourcodenya.

import java.io.*; // untk menampilkan input output
import java.net.*; // supaya terhubung ke jaringan
public class ChatClient; // nama class
    private static InetAddres host; // inetaddres = untuk mendapatkan alamat ip, baik
    ip vr 4 atau ip vr 6
    private static final int PORT = 1234;
    private static Socket link;
    private static BufferedReader in; //BufferedReader = untuk mendapatkan inputan
     dari kyboard
    private static PrintWriter out;
    private static BufferedReader keyboard;
    public static void main(String args[]){
        try{ // pertnyataan yang berpotensi yang mengakibatkan exception
            host = InetAddres.getLocalHost(); // objek baru dan akan terhubung ke
                   ChatSeerverMulti
            link = new Socket(host.PORT); // membuat objek baru
            in = new BufferedReader(new inputStreamReader(link.getInputStream())));
            out = new PrintWriter(link.getOutputStream(),true);
            keyboard = new BufferedReader(new inputStreamReader(System.in));
            String message,response;
            }do{
                System.out.println("Enter message (QUIT to exit)"); // mencetak
                message =  keyboard.readLine(); // pesan akan di baca
                System.out.println(message); // menampilkan pesan
                System.out.println(response); // menampilkan pesan
            }while(!)message.equals("QUIT")); // jika pesan tidak muncul = sistem out
       }catch(UnknownHostException e){
           System.out.println("Host ID not Found!");
       }
       catch(IOException e){
           e.printStackTrace();
       }
       finally{
           try{
               if(link !=null){
                   System.out.println("Closing down connection");
                   link.close();// link keluar
               }
           }
           catch(IOException e){
               e.printStackTrace();
           }
       }
       }
    }

Baiklah, setelah kita bikin Sourcodenya, selanjutnya kita akan menjalankan program tadi. Pertama-tama kita buka tempat penyimpanan dimana kita menyimpan sourcode nya, setelah itu klik kanan dan klik GitBashHere > Javac ChatServerMulti 

Klik minimize, setelah itu kita lakukan hal yang sama pada ChatClientMulti.

    Setelah itu kita masukan teks sesuai dengan kebutuhan kita pada ChatClientMulti dan dia akan otomatis masuk ke dalam ChatServerMulti seperti gambar dibawahini.

    Baiklah mungkin hanya itu yang dapat saya sampaikan, jika teman-teman ingin mengetahui penjelasannya secera lengkap, silahkan klik link https://youtu.be/qNhkHDJqsY8.

Sekian terima kasih:) Assalamualaikum Wr Wb.






Komentar

Postingan populer dari blog ini

Membuat Form Login Dengan Menggunakan Netbeans IDE 8.2

Program Buble Sort Menggunakan Acending (Sorting) Dalam Bahasa Java.

Membuat Sebuah Program Sederhana Menggunakan Switch-Case dalam Bahasa Java