Socket

Socket secara sederhana adalah tindakan yang wajib dilakukan pada model client-server dalam berkomunikasi. Sebelum sebuah mesin melakukan client request, maka yang pertama kali dilakukan adalah membuat socket. Demikian juga mesin yang akan mendengar dan melakukan server response, sebelum melakukannya ia harus membuat socket terlebih dahulu. Dengan demikian komunikasi antara mesin client dengan mesin server dilakukan melalui socket, sepasang mesin yang melakukan komunikasi melalui socket disebut sebagai socket pairs.

Gambar dibawah ini menjelaskan penggunaan konsep socket dalam membangun komunikasi antara mesin client dengan mesin server:

ClientServerSocket

Referensi gambar: TCP/IP Chat Application using C#

Berdasarkan penjelasan dan gambar diatas, maka berikut ini dapat dijelaskan langkah-langkah yang dilakukan oleh kedua mesin dalam membangun komunikasi, yaitu:

Mesin Client:

  1. Membuat socket, atau socket()
  2. Menghubungi server, atau connect()
  3. Mengirimkan data pada server, atau send()
  4. Mengakhiri komunikasi, atau close()

Mesin Server:

  1. Membuat socket, atau socket()
  2. Membuat bind, atau bind()
  3. Mendengarkan adanya request, atau listen()
  4. Menerima request dari client, atau accept()
  5. Menerima data dari client, atau recv()
  6. Mengirimkan response kepada client, atau send()
  7. Mengakhiri komunikasi, atau close()

Dari penjelasan tersebut, jelaslah begitu pentingnya socket dalam komunikasi antara mesin client dengan mesin server. Untuk membuat socket, baik mesin client maupun mesin server, membutuhkan hal-hal sebagai berikut:

  • Adanya IP Address dan port number, pasangan keduanya disebut socket address.
  • Adanya transport protocol, baik TCP atau UDP

Untuk mengimplementasikan konsep socket ini dalam client-server model, maka python menyediakan module khusus yaitu, socket module. Berikut ini adalah link dokumentasi untuk python versi 2 dengan python versi 3, yaitu:

  1.  Dokumentasi socket module untuk python ver 2
  2.  Dokumentasi socket module untuk python versi 3

Artikel-artikel yang terkait pada blog ini adalah:

Client-Server

Socket in Python

TCP Client – Reading HTTP Header

TCP Client – Mass HTTP header reading