| 角色 | 類別/方法 | 關鍵流程 |
| Client | TcpClient | new TcpClient(ip, port) → GetStream() → NetworkStream Read/Write |
| Server | TcpListener | new TcpListener(port) → Start() → AcceptTcpClient() → GetStream() |
NetworkStream 提供串流介面,簡化同步收發。UdpClient 則直接 Send/Receive,無串流、無連線導向,不需 Listen。
廣播式 C/S 聊天室設計要點
客戶端 UI 與執行緒
ListBox 顯示訊息、TextBox 輸入、Button 發送/連線
- 連線時輸入 Server IP、Port、暱稱
- 接收執行緒:
while(true) 循環 Read,收到訊息跨執行緒更新 UI → 必須用 Invoke/委派
伺服器端設計
- 維護連線客戶端清單(IP+Port)
- 廣播:遍歷清單對每個
NetworkStream Write
- 斷線偵測:約定
Close 開頭訊息為離線信號(實際發送時加上 IP+暱稱前綴,避免聊天內容誤觸發)
編碼陷阱
發送端 Encoding.UTF8.GetBytes,接收端 Encoding.GetEncoding("GB2312").GetString —— 必須雙端一致,否則中文亂碼。
- 上一篇文章: C# 串口通訊實戰:基於 MSComm 控件的完整 WinForms 範例
- 下一篇文章: C# Socket 開發快速入門(三):Socket 類別伺服器端完整範例與高階 API 介紹
Copyright ©
程式碼之家 All Rights Reserved