News!Bagikan artikel kami melalui sosialitamu, dan dapatkan kebaikan kebaikan seperti; kesehatan, rezeki, umur panjang yang barokah, terpelihara dari bala' dan penyakit akut, dll. Tentunya dari jalan yang tidak disangka-sangka.

Follow Us

Sunday, January 29, 2012

Membuat Program Chatting Client � Server (MultiThreading) di Netbeans

gusmuluk
Bagikan melalui WhatsApp
semoga menjadi ilmu yang bermanfaat untuk orang banyak.





Sebelumnya saya mau terima kasih dulu sama dosen pemograman jaringan saya yang sudah memberikan tugas ini..  Smile
Saya juga mau ngucapin makasih buat yg sudah bantuin buat program ini.. (Mr.TM u�re �java gods�.. hahahaa)


Program ini adalah program chatting dengan multiThreading client server (buatnya di netbeans yah, coz pake JAVA). Dimana client dapat melakukan chatting secara broadcast dan private message.  Disisi server hanya menampilkan list nama-nama client..
Langsung aja deh kalo begitu kita coba yukss� Check it ouT, gan..!!
Langkah awal:
1. buat project di Netbeans untuk sisi server nya:


  package uaschattingserver;

  import java.io.*;

  import java.net.*;

public class ChattingServer {

               static  Socket clientSocket = null;

               static  ServerSocket serverSocket = null;

               static  clientThread t[] = new clientThread[10];

public static void main(String args[]) {

                BufferedReader br = null;

                PrintStream ps = null;

                String line;

                String nama;

                int port_number=2224;

            if (args.length < 1)

            {

                   System.out.println("Port number="+port_number);

            } else {

                     port_number=Integer.valueOf(args[0]).intValue();

              }

           try {

                   serverSocket = new ServerSocket(port_number);

           } catch (IOException e)

                         {System.out.println(e);}

          while(true){

                try {

                      clientSocket = serverSocket.accept();

                      for(int i=0; i<=9; i++){

                      if(t[i]==null)

                       {

                       br = new BufferedReader( new InputStreamReader(clientSocket.getInputStream()));

                       ps = new PrintStream(clientSocket.getOutputStream());

                       ps.println("Masukan Nama Lengkap Kamu :");

                       nama = br.readLine();

                       (t[i] = new clientThread(clientSocket,t)).start();

               // System.out.println(t[i].getName());

                       System.out.println(""+nama+"");

                  break;

                           }

                  }

               }

                   catch (IOException e) {

                                System.out.println(e);}

                      }

                 }

           }

class clientThread extends Thread{

                 BufferedReader is = null;

                 PrintStream os = null;

                 Socket clientSocket = null;

                 clientThread t[];

                 String name;

                public clientThread(Socket clientSocket, clientThread[] t){

                   this.clientSocket=clientSocket;

                   this.t=t;

                 }

         public String getNama(){

            return name;

          }

         public void run()

          {

                   String line;

                 //String name;

             try{

                 is = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

                 os = new PrintStream(clientSocket.getOutputStream());

                 os.println("Masukan Nama panggilan Kamu:");

                 name = is.readLine();

                 os.println("hai"   + name +      "Selamat Datang.\nEnter /quit untuk keluar");

                for(int i=0; i<=9; i++)

                       if (t[i]!=null && t[i]!=this)

                      t[i].os.println("*** User "+name+" sudah masuk ke chat room ini !!! ***" );

                while (true) {

                        line = is.readLine();

                        if(line.startsWith("/quit")) break;

            //batas private

                     if (line.startsWith("+")){

                     java.util.StringTokenizer ts = new java.util.StringTokenizer(line, ":");

                     String users= ts.nextToken();

                     String user = users.substring(1, users.length());

                     String pesan=ts.nextToken();

                     for(int i=0; i<=9; i++)

                           if (t[i]!=null &&  t[i].getNama().equalsIgnoreCase(user))

                            t[i].os.println(pesan);

              // private

                  } else {

                           for(int i=0; i<=9; i++)

                          if (t[i]!=null)  t[i].os.println("<"+name+"> "+line);

                           }

                   }

                     for(int i=0; i<=9; i++)

                          if (t[i]!=null && t[i]!=this)

                          t[i].os.println("*** User "+name+" meninggalkan chat room !!! ***" );

                          os.println("*** Bye "+name+" ***");

                 for(int i=0; i<=9; i++)

                         if (t[i]==this) t[i]=null;

            is.close();

            os.close();

            clientSocket.close();

                  }

         catch(IOException e){};

       }
2. buat project di Netbeans untuk sisi client nya:

 package uaschattingclient;

 import java.io.*;

 import java.net.*;

public class ChattingClient  implements Runnable {

// clientClient: client socket

// os: the output stream

// is: the input stream

        static Socket clientSocket = null;

        static PrintStream os = null;

        static BufferedReader is = null;

        static BufferedReader inputLine = null;

        static boolean closed = false;

public static void main(String[] args) {

         int port_number=2224;

         String host="localhost";

         if (args.length < 2)

         {

                 System.out.println("Host="+host+", port_number="+port_number);

            } else {

                  host=args[0];

                   port_number=Integer.valueOf(args[1]).intValue();

                }

              // Open a socket on a given host and port

         try {

                 clientSocket = new Socket(host, port_number);

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

                 os = new PrintStream(clientSocket.getOutputStream());

                 is = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

              } catch (UnknownHostException e) {

                          System.err.println("Host tidak ditemukan "+host);

                 } catch (IOException e) {

                           System.err.println("Tidak dapat menampilkan I/O "+host);

                 }

              // Open a connection to on port port_number

           if (clientSocket != null && os != null && is != null) {

           try {

                  // Create a thread to read from the server

            new Thread(new ChattingClient()).start();

            while (!closed) {

                       os.println(inputLine.readLine()+'\n');

                       }

           // Clean up:

          // close the output stream

          // close the input stream

          // close the socket

               os.close();

               is.close();

               clientSocket.close();

               } catch (IOException e) {

              System.err.println("IOException:  " + e);

                        }

                  }

               }

public void run() {

            String responseLine;

            try{

                    while ((responseLine = is.readLine()) != null) {

                    System.out.println(responseLine);

                    if (responseLine.indexOf("*** Bye") != -1) break;

                  }

          closed=true;

                      } catch (IOException e) {

             System.err.println("IOException:  " + e);

                 }

           }

 }

Setelah buat kedua projectnya, project server di run terlebih dahulu server akan menunggu.
Kemudian run project client.. maka program akan jalan.. Secara umum ini jika menjalankan client adalah chatting secara broadcast.
untuk Chatting secara private message sesama client , maka disisi sebelum mengetikkan pesan, harus ditambah dengan menuliskan nama client yang dituju, contoh:



Client akan mengirim message private kepada client yg bernama Budi, maka harus mengetik seperti di bawah ini:



+Budi:      pesaaaan



Bagikan : Facebook | Twitter | WhatsApp

google+

linkedin

previous
« Prev Post
Author Image

gusmuluk
Santri Lampung


ADVERTISMEN

Riset Ilmiyah SantriLampung

Open
santrilampung.com

Saran Baca untuk Anda


Baca juga khasanah TheSantri berikut
BARANG KALI INGIN MENTRAKTIR CREATOR DENGAN SECANGKIR KOPI DAN SEPOTONG BAKWAN SILAHKAN TRANSFER MELALUI REKENING MANDIRI BERIKUT. SEMOGA ALLAH MEMBALAS DENGAN YANG LEBIH BAIK.

Saklar Jiwa Lentera Hati

Pengantar Mencapai Pencerahan Jiwa. Ayo Tafakur Tingkatkan Keimananmu disini
Open