Senin, 20 September 2021

CHAT NETWORK PROGRAMMING MULTICLIENT DAN MULTISERVER

 Class ChatServerMulti.java


import java.io.*; //untuk menampilkan data kepada pengguna


import java.net.*; //digunakan dalam membuat suatu komunikasi jaringan dalam sebuah prgram yang dibuat dengan bahasa pemograman java.


public class ChatServerMulti{ //berguna untuk memberikan nama class dari suatu kodingan.


 private static ServerSocket servSock; // merupakan ciri khas bahwa class tersebut diperuntukkan untuk server.


 private static final int PORT = 1234 ; // merupakan ciri khas bahwa class tersebut diperuntukkan untuk server.


 public static void main(String args[]) throws IOException{ // Suatu Method yang Membaca Input Data String.


   System.out.println("Opening Port.....\n"}; //menampilkan hasil dari pesan client.


   try{ //blok yang digunakan untuk menempatkan kode-kode program Java yang memungkinkan terjadinya exception.


    servSock = new ServerSocket(PORT); //Panjang antrian maksimum untuk koneksi yang akan datang berdasarkan pada parameter backlog.


   }catch(IOException e){ //digunakan untuk menangkap kesalahan yang terjadi pada blok try.


    System.out.println("Unable to attach to port"); //akan menampilkan proses Unable to attach to port.


    System.exit(1); //sistem keluar program jika setelah selesai.


   }


   do{ digunakan untuk mengerjakan sebuah atau sekelompok pernyataan berulang-ulang.


    Socket client = servSock.accept(); //sebuah class yang digunakan baik oleh client/server, instance dari class ini adalah nilai balik dari methode accept() yang dimiliki oleh class ServerSocket. Ketika methode accept() sudah dipanggil berapa sudah melakukan binding ke port tertentu dan siap untuk menerima request dari client.


   ClientHandler handler = new ClientHandler(client); membuka koneksi dan menunggu permintaan koneksi dari client. 


    handler.start(); //memulai koneksi dari client


    }while(true);//untuk menampilkan suatu pemilihan yang menghasilkan kebenaran.


 }


}


class ClientHandler extends Thread{ menampilkan koneksi dari client dan melakukan pengontrol aliran program.


 private Socket client ; // untuk pertukaran data antar aplikasi yang terdapat di dalam sebuah mesin maupun beda mesin dan pertukaran ini terjadi pada sebuah jaringan komputer.


 private BufferedReader in ; // Membaca Sebuah Bialangan atau Carakter sehingga bilanggan tersebut sanggup dimanfaat untuk Sebuah Program.


 private PrintWriter out ; //berguna untuk hasik penulisan akhir.


 public ClientHandler(Socket socket){ membuka koneksi dan menunggu permintaan koneksi dari client. 


   client = socket ; //berguna untuk melakukan pertukaran data antar aplkasi.


   try{ //blok yang digunakan untuk menempatkan kode-kode program Java yang memungkinkan terjadinya exception.


    in = new BufferedReader(new  


    InputStreamReader(client.getInputStream()));


    out = new PrintWriter(client.getOutputStream(),true); //keluaran dari penulisan akhir pesan.


   }catch(IOException e){ /digunakan untuk menangkap kesalahan yang terjadi pada blok try.


    e.printStackTrace(); digunakan untuk mentrace error yang didapat pada block catch.


   }


 }


public void run(){ //menjalankan kodingan yang akan di program.


 try{ //blok yang digunakan untuk menempatkan kode-kode program Java yang memungkinkan terjadinya exception.


   String received ;  


   do{ // digunakan untuk mengerjakan sebuah atau sekelompok pernyataan berulang-ulang.


    received = in.readLine(); //menerima pesan masuk.


    System.out.println(received); //mengeluarkan hasil dari balasan pesan.


    out.println("ECHO : " + received); //menampilkan pesan tersebut.


   }while(!received.equals("QUIT")); //pemilihan untuk keluar dari balasan pesan.


 }catch(IOException e){ //digunakan untuk menangkap kesalahan yang terjadi pada blok try.


   e.printStackTrace(); //digunakan untuk mentrace error yang didapat pada block catch.


 }


 finally{


   try{  


    if (client != null){ //jika client nilai client nya itu null.


    System.out.println("Closing down connection"); //menampilkan closing down connection.


    client.close(); //telah menutup client


    }


   }catch(IOException e){ //digunakan untuk menangkap kesalahan yang terjadi pada blok try.


    e.printStackTrace();


   }//digunakan untuk mentrace error yang didapat pada block catch.


 }


 }


}




ChatClientMulti.java


import java.io.*; //untuk menampilkan data kepada pengguna.


import java.net.*; //digunakan dalam membuat suatu komunikasi jaringan dalam sebuah prgram yang dibuat dengan bahasa pemograman java.


public class ChatClientMulti{ //berguna untuk memberikan nama class dari suatu kodingan.


 private static InetAddress host ; //host program yang digunakan.


 private static final int PORT = 1234; //port akhir yang digunakan


 private static Socket link ; //untuk pertukaran data antar aplikasi dengan menggunakan sebuah link.


 private static BufferedReader in ; // Membaca Sebuah Bilangan atau Carakter sehingga bilanggan tersebut sanggup dimanfaat untuk Sebuah Program.


 private static PrintWriter out ; /menampilkan hasil keluaran dari client.


 private static BufferedReader keyboard ; //pengetikan caracter dalam sebuah program.


 public static void main(String args[]){ // method utama untuk menjalankan program


   try{ //blok yang digunakan untuk menempatkan kode-kode program Java yang memungkinkan terjadinya exception.


    host = InetAddress.getLocalHost(); //host yang digunakan dalam program.


    link = new Socket(host,PORT); //berupa link dari host yang digunakan.


    in = new BufferedReader(  


InputStreamReader(link.getInputStream()));


    out = new PrintWriter(link.getOutputStream(),true); //mengeluarkan hasil penulisan berupa link.


    keyboard = new BufferedReader( InputStreamReader(System.in));


    String message, response; //merespon pesan yang masuk.


    do{ // digunakan untuk mengerjakan sebuah atau sekelompok pernyataan berulang-ulang.


     System.out.print("Enter message(QUIT to exit)"); //mengeluarkan kalimat enter message untuk keluar.


     message = keyboard.readLine(); //memasukkan pesan yang akan disampainkan.


     out.println(message); //menampilkan keluaran pesan yang telah di masukkan.


     response = in.readLine(); //reposn dari pesan yang masuk.


     System.out.println(response); //menampilna balasn dari pesan yang masuk.


     }while(!message.equals("QUIT")) ; //pemilihan ketikan pesan akan keluar.


   }catch(UnknownHostException e){  


    System.out.println("Host ID not found!"); //menampilkan habwasannya pesan yang disampaikan tidak ada.


   }


   catch(IOException e){ //digunakan untuk menangkap kesalahan yang terjadi pada blok try.


    e.printStackTrace(); //digunakan untuk mentrace error yang didapat pada block catch.


   }


   finally{  


    try{ //blok yang digunakan untuk menempatkan kode-kode program Java yang memungkinkan terjadinya exception.


     if (link != null){


      System.out.println("Closing down connection"); //sistem keluat atau menampilkan kalimat closing down connection.


      link.close(); //link telah tutup.


     }


   }


   catch(IOException e){ //digunakan untuk menangkap kesalahan yang terjadi pada blok try.


     e.printStackTrace(); //digunakan untuk mentrace error yang didapat pada block catch


  }


  }


 }


}




Sekian penjelasan source code nya, semoga bermanfaat. 


Terimakasih telah mengunjungi laman blog ini

Tidak ada komentar:

Posting Komentar