Client-Server Sederhana

Server TCP kecil yang berbicara protokol baris, dan client CLI yang terhubung ke server. Bertujuan sebagai contoh pemrograman jaringan dasar di C dengan POSIX socket.

Struktur Kode #

FileTanggung Jawab
protocol.h/.cDefinisi protokol + parser pesan baris
server.cServer TCP single-threaded, blocking accept
client.cClient CLI interaktif
MakefileBuild server + client

Build #

bash
make            # Bangun server dan client
./server 8080   # Jalankan server di port 8080
# di terminal lain:
./client 127.0.0.1 8080

Protokol #

Setiap pesan adalah satu baris teks berakhiran newline (\n):

PerintahBalasanKeterangan
PING210 pongCek server hidup
ECHO X200 XMengembalikan argumen
UPPER X200 X (uppercase)Konversi ke huruf besar
LOWER X200 X (lowercase)Konversi ke huruf kecil
TIME200 YYYY-MM-DD HH:MM:SSWaktu server
STATS200 connections=N requests=MStatistik internal
QUIT410 byeTutup koneksi

Contoh Sesi #

text
$ ./client 127.0.0.1 8080
Menghubungkan ke 127.0.0.1:8080...
Terhubung. Ketik perintah (QUIT untuk keluar).
PING
210 pong
ECHO hello world
200 hello world
UPPER convert this text
200 CONVERT THIS TEXT
STATS
200 connections=1 requests=3
QUIT
410 bye
Koneksi ditutup.

Catatan #

  • Server single-threaded: satu koneksi diproses pada satu waktu.
  • Tidak ada autentikasi; cocok untuk jaringan lokal/loopback.
  • Untuk produksi, gunakan TLS, multi-threading, dan input validation yang ketat.