Selasa, 01 April 2014

Socket Client Server Programming Sederhana

Pengertian Socket

interface pada jaringan yang menjadi titik komunikasi antarmesin pada Internet Protocol, dan tentunya tanpa komunikasi ini, tidak akan ada pertukaran data dan informasi jaringan.

Socket terdiri dari elemen-elemen utama sebagai berikut: 

1) Local IP 
2) Protocol  
3) Local Port  
4) Remote IP  
5) Remote Port

Fungsi Socket
Socket berfungsi sebagai jalan untuk melakukan komunikasi antar mesin seperti transfer data dan informasi jaringan.

Adapun Pemrograman socket menggunakan TCP dan UDP, sebagai berikut. Cara kerja aplikasi yang menggunakan TCP dapat dijelaskan dengan gambar.


Detail dari proses tersebut adalah:
 

1) Untuk bisa melakukan koneksi client server, program server harus berjalan terlebih dahulu.   
2) Di sisi server disediakan sebuah socket, yang disebut welcoming socket yang fungsinya untuk mendeteksi adanya permintaan koneksi dari sisi client.   
3) Di sisi client terdapat client socket. Jika ingin menghubungi server, maka melalui client socket-nya, client membuat inisialisai koneksi ke welcoming socket milik server, dengan mode three-way handshake.   
4) Setelah welcoming socket menerima inisialisasi koneksi dari client socket, aplikasi server akan membuat connection socket di sisi server. Dengan connection socket ini, client socket dan connection socket berinteraksi satu sama lain untuk mengirim dan menerima data.   
5) Client membaca data yang dikirim oleh server dari client socket-nya. Kemudian menampilkan data tersebut di monitor. 
Contoh aplikasi untuk UDP socket berikut ini menggunakan kasus yang sama dengan kasus yang digunakan oleh TCP socket, yaitu :
1) Client membaca inputan dari keyboard, kemudian mengirimkan hasilnya ke server melalui socket-nya. 
2) Server membaca data yang dikirim oleh client di connection socket   
3) Server mengubah data menjadi huruf besar   
4) Server mengirimkan data yang telah diubah menuju client melalui socket-nya.   
5) Client membaca data yang dikirim oleh server dari client socket-nya. Kemudian menampilkan data tersebut di monitor. 
Perbedaan utama antara aplikasi berbasis TCP dengan aplikasi berbasis UDP adalah di aplikasi UDP tidak ada welcoming socket. Pada UDP tidak ada socket khusus untuk permintaan inisialisai koneksi. Setiap data yang datang ditangani lansung oleh server socket. 

Saya menggunakan IDE Netbeans , sebelum membuat program nya maka kita harus membuat project nya dulu dengan cara klik File > New Java Project seperti gambar dibawah ini :

setelah itu klik Java dan pilihlah Java Application, maka akan muncul tampilan seperti dibawah ini :

setelah klik "Next" maka akan muncul tampilan seperti dibawah ini  untuk memberikan nama project yang anda inginkan:

setelah klik "Finish" maka anda selesai dalam membuat project anda seperti gambar dibawah ini bisa dilihat disebelah kiri :

setelah membuat Project , maka buatlah sebuah class dengan cara klik kanan di nama project anda seperti gambar dibawah ini :

setelah itu maka akan muncul tampilan seperti dibawah ini untuk memberikan nama Class yang anda inginkan:

setelah itu maka anda tinggal memasukkan kode program yang ingin anda buat :

Contoh Program Client-Server

Code CLIENT:

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class LapenSocketClient {
    public static void main(String[] args) {
        try {
            Socket s = new Socket("localhost", 5136);
            InputStream is = s.getInputStream();
            OutputStream os = s.getOutputStream();          
            String pesan = "Siapa anda ?? \r\n";          
            os.write(pesan.getBytes());          
            int c;
            while(true)
            {
                c=is.read();
                System.out.print((char)c);
              
                if((char)c=='\n')
                    break;
            }          
            is.close();
            os.close();
            s.close();
        } catch (UnknownHostException ex) {
            Logger.getLogger(LapenSocketClient.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(LapenSocketClient.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
 

Screenshot Code CLIENT:


Code SERVER
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
public class LapenSocketServer {
    public static void main(String[] args) {
        try {
            ServerSocket ss = new ServerSocket(5136);
            Socket s = ss.accept();
            InputStream is = s.getInputStream();
            OutputStream os = s.getOutputStream();         
            String respon = "Saya Fariz\r\n";         
            int c;
            while(true)
            {
                c=is.read();
                System.out.print((char)c);
             
                if((char)c=='\n')
                    break;
            }
            os.write(respon.getBytes());
            os.flush();         
            os.close();
            is.close();
            s.close();                    
        } catch (IOException ex) {
            Logger.getLogger(LapenSocketServer.class.getName()).log(Level.SEVERE, null, ex);
        }
     
    }
}
 

Screenshot Code Server:



pertama harus Run File yang code server dengan cara klik kanan > Run File , setelah itu baru Run File yg code client , maka akan keluar 2 output seperti gambar dibawah ini :

Output dari Client :



Output dari Server :

 


Sumber : http://andina-ramadhayanti.blogspot.com/2013/03/contoh-socket-client-server-programming.html