Socket
基本概念
Socket 是網路通訊的端點(endpoint),由 IP 位址加上 port 號組成。
161.25.19.8:1625
→ IP: 161.25.19.8,Port: 1625
Port 號的用途是讓同一台機器上的不同服務可以被區分——同一個 IP 上,port 80 是 HTTP、port 22 是 SSH,依此類推。
Client-Server 連線流程
一個典型的 socket server 運作方式如下:
1. Connect → client 向 server 發出連線請求
2. Accept → server 接受連線
3. fork() → server 生出 child process 專門處理這個 client
parent server 繼續等待新的連線
4. send/recv → child 和 client 之間互相傳送資料
每對 client-server 之間會建立 兩條方向相反的連線,反映 TCP 連線的雙向特性(可用
netstat觀察)。
設計上的限制
將 port 號寫死(hardcoded)在程式中是不好的做法——實際系統中 port 應該動態協商,這正是 RPC 的 matchmaker 機制要解決的問題。