Senin, 11 Maret 2013

Java Socket Programming


Socket adalah teknologi dasar untuk pemrograman perangkat lunak sebagai sarana berkomunikasi pada TCP / IP jaringan. Socket memberikan titik akhir komunikasi dua arah untuk mengirim dan menerima data dengan socket yang lain. Koneksi Socket biasanya berjalan antara dua komputer yang berbeda pada LAN atau di Internet, tetapi mereka juga dapat digunakan untuk komunikasi interprocess pada satu komputer.

Fungsi Socket, socket programming terdiri dari 2 jenis :
1. Connection-based sockets, sebagai komunikasi antara client-server.
2. Connectionless sockets, komunikasi peer to peer; setiap proses adalah sama/simetris.

Contoh Client Server Java Socket Programming yang menggunakan aplikasi netbeans :
===========
Server
===========
package server;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Server {

    public static void main(String[] args) throws IOException {
        // TODO code application logic here
        int port = 1234;
        ServerSocket server = new ServerSocket (port);
     
        while(true){
            try
            {
                Socket socket = server.accept();
             
                ObjectInputStream inp = new ObjectInputStream(socket.getInputStream());
                String message = (String) inp.readObject();
             
                ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
                System.out.println(message);
             
                if(message.equals("user")||message.equals("admin"))
                {
                    out.writeObject("Selamat Datang " + message);
                }
                else
                {
                    out.writeObject("Maaf anda tidak memiliki hak akses");
                }
            }
            catch(ClassNotFoundException ex)
            {
                Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
            }
            catch(IOException ex)
            {
                Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}
==========
Client
==========
      package client;
      import com.sun.corba.se.spi.activation.Server;
      import java.io.IOException;
      import java.io.ObjectInputStream;
      import java.io.ObjectOutputStream;
      import java.net.InetAddress;
      import java.net.Socket;
      import java.net.UnknownHostException;
      import java.util.Scanner;
      import java.util.logging.Level;
      import java.util.logging.Logger;
      public class Client {

      public static void main(String[] args) throws IOException {
        // TODO code application logic here
        try
        {
            InetAddress host = InetAddress.getLocalHost();
            Socket socket = new Socket(host.getHostName(), 1234);
            System.out.println("Apa username mu?");
            ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
            Scanner scan = new Scanner(System.in);
            String pesan = scan.next();
            out.writeObject(pesan);
            
            ObjectInputStream inp = new ObjectInputStream(socket.getInputStream());
            String message = (String) inp.readObject();
            
            System.out.println(message);
            out.close();
            inp.close();
            socket.close();
        }
        catch(ClassNotFoundException ex)
        {
            Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
        }
        catch(IOException ex)
        {
            Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

Tidak ada komentar:

Posting Komentar