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 #
| File | Tanggung Jawab |
|---|---|
protocol.h/.c | Definisi protokol + parser pesan baris |
server.c | Server TCP single-threaded, blocking accept |
client.c | Client CLI interaktif |
Makefile | Build server + client |
Build #
bash
make # Bangun server dan client
./server 8080 # Jalankan server di port 8080
# di terminal lain:
./client 127.0.0.1 8080Protokol #
Setiap pesan adalah satu baris teks berakhiran newline (\n):
| Perintah | Balasan | Keterangan |
|---|---|---|
PING | 210 pong | Cek server hidup |
ECHO X | 200 X | Mengembalikan argumen |
UPPER X | 200 X (uppercase) | Konversi ke huruf besar |
LOWER X | 200 X (lowercase) | Konversi ke huruf kecil |
TIME | 200 YYYY-MM-DD HH:MM:SS | Waktu server |
STATS | 200 connections=N requests=M | Statistik internal |
QUIT | 410 bye | Tutup 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.