Socket in Python

Untuk membuat socket dalam python kita akan menggunakan socket.socket() function dari socket module (Jangan lupa untuk meng-import module tersebut sebelum menggunakannya).

Selanjutnya, sebelum kita memanfaatkan berbagai method pada socket module, maka kita harus membuat socket object terlebih dahulu. Berikut ini adalah general syntax dari socket object berikut penjelasan ringkas masing-masing parameternya:

variable = socket.socket(socket_family, socket_type, protocol = 0)

Parameter socket_family :

  • socket.AF_INET, kita memakai parameter ini untuk standard IPv4. Biasanya kita gunakan dalam pembuatan script untuk model client-server.
  • socket.PF_PACKET, kita memakai parameter ini untuk device driver layer. Biasanya kita gunakan dalam pembuatan script untuk sniffing packet maupun packet injection.

Parameter socket_type :

  • socket.SOCK_STREAM, kita memakai parameter ini untuk membuat komunikasi berbasis TCP protocol, baik mesin client maupun mesin server.
  • socket.SOCK_DGRAM, kita memakai parameter ini untuk membuat komunikasi berbasis UDP protocol, baik mesin client maupun mesin server.
  • socket.SOCK_RAW, kita memakai parameter ini terkait dengan aktivitas packet sniffing dan aktivitas paket injection di jaringan komputer.

Parameter protocol = 0

  • Biasanya kita membiarkan parameter ini bernilai default (0), dan akan banyak digunakan pada packet sniffing dan packet injection di jaringan komputer.

 

Setelah socket object dibuat, maka kita dapat memanfaatkan berbagai method pada socket module dengan menggunakan dot operator. Berikut ini adalah penjelasan singkat masing-masing method terkait dengan client-server model:

Server Socket Methods:

  1. socket.bind(address, port), method ini digunakan untuk menghubungkan socket address (IP Address dan port) dengan socket object. Server harus melakukan “bind” terlebih dahulu sebelum mendengar dan menerima client request. Argumen “address” adalah IP address dari mesin server, dan argumen “port” adalah nomor port yang digunakan oleh mesin server.
  2. socket.listen(q), method ini digunakan untuk mendengar client request. Argumen “q” adalah koneksi maksimum yang dapat dikelola oleh mesin server.
  3. socket.accept(), method ini digunakan untuk menerima client request.

Client Socket Methods:

  1. socket.connect(address), method ini digunakan untuk memulai hubungan oleh mesin client terhadap mesin server. Argumen “address” adalah IP address dari mesin server.

General Socket Methods:

  1. socket.recv(bufsize), method ini digunakan oleh mesin client dan mesin server yang menggunakan TCP protocol untuk menerima data.
  2. socket.recvfrom(bufsize), method ini digunakan oleh mesin client dan mesin server yang menggunakan UDP protocol untuk menerima data.
  3. socket.send(bytes), method ini digunakan oleh mesin client dan mesin server yang menggunakan TCP protocol untuk mengirim data.
  4. socket.sendto(data, address), method ini digunakan oleh mesin client dan mesin server yang menggunakan UDP protocol.

Adapun artikel yang terkait dengan adalah:

Client-Server

Socket