Monday, February 17, 2014

Apa itu Socket dan Socket Programming?

Di postingan saya kali ini, saya akan membagikan sedikit pengetahuan saya mengenai apa itu socket dan socket programming. Secara definisi socket bisa diartikan sebagai ujung-ujung dari sebuah komunikasi 2 arah yang terjadi antara 2 program yang berjalan di sebuah network.
"A socket is one endpoint of a two-way communication link between two programs running on the network"
Socket terikat pada port number sehingga layer TCP bisa mengidentifikasi kemana data yang dikirimkan oleh sebuah aplikasi akan ditujukan. Ujung dari sebuah socket terdiri dari kombinasi IP Address dan juga port number.


Bagaimana cara bekerja socket?

  1. Sebuah server berjalan di sebuah computer yang memiliki sokcet yang terikat pada port number yang spesifik, dan server menunggu client (listening) untuk melakukan koneksi. 
  2. Client mengetahui hostname dari mesin tempat srver berjalan, juga mengetahui  port number berapa tempat server menunggu koneksi. Untuk membuat sebuah permintaan koneksi client harus "menghampiri" server di port mesin tempat server itu berada., client juga harus mengidentifikasi dirinya kepada server agar bisa terikat pada local port number yang akan digunakan selama koneksi.

  3. Jika semua berjalan dengan lancar maka server akan menerima koneksi, saat koneksi terbentuk server mendapatkan socket baru yang tersambung pada local port yang sama dan juga memiliki endpoint yang tersetting dengan alamat dan port client. Server membutuhkan sokcet baru agar dapat tetap menerima koneksi dari client lain
  4. Jika sudah terhubung, maka server dan client akan berkomunikasi melewati socket tersebut. client akan menulis dan membaca pesan dari server melalui socket, juga sebaliknya server menulis dan membaca pesan dari client melalui socket
Jadi jika saya boleh menyimpulkan socket adalah semacam pelabuhan tempat dimana pesan diterima lalu diteruskan ke tingkat selanjutnya, juga tempat dimana pesan dibungkus untuk kemudia dikirim kepada server/client

Perlu diketahui juga bahwa socket merupakan sebuah software dan bukan hardware. Maka dari itu ada yang namanya Socket Programming, socket programming sangatlah berguna, karena dengan adanya socket programming seorang developer tidak perlu terlalu memahami layer yang ada di bawah socket, developer hanya perlu memprogram socket agar bisa berkomunikasi dan sisanya akan diurus secara otomatis oleh socket tersebut.

sumber:

1 comment: