首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# Socket 簡易局域網聊天程序實現參考

     編輯:程式設計綜合問答

需求

實現類似 QQ 的局域網聊天功能,基於 C# WinForms,使用 Socket 進行通信。

核心架構

  • 服務端:監聽端口,維護客戶端連接列表,轉發消息。
  • 客戶端:連接服務器,啟動接收線程監聽消息,UI 線程發送消息。
  • 協議:簡易文本協議或 JSON 序列化,包含消息類型、發送者、內容、時間戳。

關鍵代碼片段

// 服務端接收循環
void ReceiveClient(object clientSocket) {
  Socket socket = (Socket)clientSocket;
  byte[] buffer = new byte[1024];
  while (true) {
    int len = socket.Receive(buffer);
    if (len == 0) break;
    string msg = Encoding.UTF8.GetString(buffer, 0, len);
    Broadcast(msg, socket); // 廣播給其他客戶端
  }
}

// 客戶端發送
void SendMessage(string text) {
  byte[] data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new { type="msg", content=text }));
  _socket.Send(data);
}

參考資源

建議在掌握基礎後引入心跳檢測、重連機制、消息確認等增強穩定性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved