在局域網聊天室專案中,客戶端首次連接服務器時,端口號如何設定?若多個客戶端同時使用固定端口(如 8080),是否會衝突?
TCP 連接由四元組唯一確定:源 IP、源端口、目的 IP、目的端口。服務器監聽固定端口(如 8080),多個客戶端同時連接時,操作系統會為每個客戶端分配不同的臨時源端口,因此不會衝突。這與 Web 伺服器(端口 80/443)支撐海量並發連接原理相同。
TcpListener listener = new TcpListener(IPAddress.Any, 8080);
listener.Start();
while (true) {
TcpClient client = listener.AcceptTcpClient(); // 每個客戶端自動獲得獨立連接
// 處理客戶端邏輯...
}
首次連接端口固定在服務器側,客戶端無需擔心端口衝突,專注於協議設計與狀態管理即可。