Secara normal, sebuah server berjalan pada sebuah computer tertentu dan memiliki sebuah socket yang menuju ke sebuah nomer port tertentu. Server hanya menunggu, mendengarkan socket menerima permintaan koneksi dari client.

1_2

Pada sisi client :
client mengetahui hostname dari perangkat dimana server berjalan dan nomer port
dimana server terhubung. Untuk membuat permintaan koneksi, client mencoba untuk berhubungan dengan server pada perangkat dan port server.

Jika semua berjalan dengan semestinya, maka server akan menerima koneksi tersebut. Selama proses penerimaan, server mendapat sebuah socket yang baru yang dilemparkan ke port yang berbeda. Proses ini memerlukan socket yang baru (dan port yang berbeda) sehingga server dapat terus mendengarkan permintaan koneksi melalui socket yang sebenarnya sambil melakukan koneksi dengan client yang terhubung.

2_2

Pada sisi client, apabila sebuah koneksi diterima, socket berhasil dibuat maka client dapat menggunakan socket tersebut untuk berkomunikasi dengan server. Socket yang ada pada client tidak melalui port yang digunakan untuk berhubungan dengan server. Melainkan, client menggunakan port local pada perangkat yang berjalan sebagai client.

Client dan server sekarang dapat berkomunikasi dengan writing dan atau reading melalui socket.


Definisi: socket adalah endpoint dari hubungan komunikasi dua arah antara dua program yang berjalan pada jaringan.
Sebuah socket dilewatkan melalui port sehingga layer TCP dapat mengidentifikasi aplikasi mana yang sesuai dengan data yang dikirim.


Implementasi socket dalam Java

Paket java.net dalam Java Platform menyediakan class, Socket yang mengimplimentasikan salah satu sisi dari koneksi dua arah diantara program java anda dan program lain pada jaringan. Class Socket berada pada posisi paling atas dari platform-dependent implementation, menyembunyikan detail dari beberapa system khusus dari program Java.

Dengan menggunakan class java.net.Socket daripada mengandalkan pada kode yang asli, java program anda dapat berkomunikasi melalui jaringan pada model platform-independent.

Sebagai tambahan, java.net memasukkan class ServerSocket, yang mengimplementasikan sebuah socket dimana server dapat menggunakannya untuk mendengarkan dan menerima koneksi client. Sekarang saya akan menampilkan bagaimana menggunakan class Socket dan ServerSocket.

SYNTAX:

Untuk membuka sebuah socket:

Socket MyClient;

Myclient =new Socket(“Machine name”,PortNumber);

Saat mengimplementasikan server anda juga butuh membuat sebuah objek socket dari ServerSocket dengan maksud untuk mendengarkan dan menerima koneksi dari client.

Socket clientSocket = null;

try {

serviceSocket = Myservice.accpt();

}

catch(IOException e){

System.out.println(e);

}

(Program di atas menggunakan exception handling)