Dasar Komunikasi Jaringan dengan Python Socket
Pemrograman socket adalah fondasi komunikasi antar proses dalam jaringan komputer. Python menyediakan modul bawaan bernama socket yang memungkinkan pengembang untuk membuat aplikasi client-server menggunakan protokol TCP (Transmission Control Protocol) atau UDP (User Datagram Protocol). Dalam arsitektur ini, server bertindak sebagai pendengar (listener) pada port tertentu, sementara client melakukan inisiasi koneksi.
Implementasi Server Sederhana
Server harus melakukan bind pada alamat IP dan port, kemudian mendengarkan koneksi masuk. Berikut adalah contoh implementasi server TCP menggunakan Python:
import socket
# Inisialisasi socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 65432))
server_socket.listen()
print("Menunggu koneksi...")
conn, addr = server_socket.accept()
with conn:
print(f"Terhubung dengan {addr}")
while True:
data = conn.recv(1024)
if not data: break
conn.sendall(data)Implementasi Client Sederhana
Client bertugas melakukan koneksi ke alamat IP dan port yang telah ditentukan oleh server untuk mengirimkan data.
import socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect(('127.0.0.1', 65432))
s.sendall(b'Halo Server')
data = s.recv(1024)
print(f"Diterima: {data.decode()}")Tabel Perbandingan Metode Socket
| Metode | Fungsi |
|---|---|
| socket() | Membuat objek socket baru |
| bind() | Menghubungkan socket ke alamat dan port |
| listen() | Mengaktifkan server untuk menerima koneksi |
| accept() | Menerima koneksi masuk |
| connect() | Memulai koneksi TCP ke server |
| send() / sendall() | Mengirim data melalui socket |
| recv() | Menerima data dari socket |
Tips Troubleshooting
- Address Already in Use: Sering terjadi jika port belum tertutup sempurna. Gunakan
socket.SO_REUSEADDRuntuk mengatasinya. - Timeout: Pastikan firewall tidak memblokir port yang digunakan (misal: 65432).
- Encoding: Selalu ingat bahwa socket mengirim data dalam bentuk bytes, gunakan
.encode()dan.decode()untuk string.
🔍 Orang Lain Juga Mencari Ini
Python Socket Programming Tutorial
Python Tcp Server Example
Python Socket Client Implementation
Python Network Programming
Socket.AF_INET Vs Socket.AF_INET6
Python Socket Sendall Vs Send
Python Socket Bind Error
Python Socket Programming Best Practices
Python Socket Non-blocking
Python Socket Select Module
Python Socket Threading
Python Socket Communication
Python Socket Programming For Beginners
Python Socket Library Documentation
Python Socket Port Reuse