首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 網路版鬥地主實戰(一):Socket 通訊架構與訊息協議設計

     編輯:關於C#

整體架構

Server 類結構 Client 類結構

  • Server:監聽 Port 1991,接受兩個 Client,啟動兩執行緒 AcceptClient1/2Data 循環接收
  • Client:連線指定 IP:1991,啟動執行緒 AcceptServerData 接收
  • Client 間無直連,通訊經 Server 轉發

連線建立流程

  1. Server new TcpListener(1991).Start(),while(true) AcceptTcpClient() 取兩個 Client 後停止監聽
  2. Client new TcpClient().Connect(ip, 1991)
  3. 雙方各開啟 NetworkStream 收發 byte[]

訊息協議設計

採用字首標識 + 序列化資料:

序列化實現

PokerGroup 自行實現 ToBytes() / FromBytes(byte[]),確保網路傳輸一致性。

後續流程預覽

連線建立 → 發牌 → 叫地主(二) → 出牌權限(三) → 牌型算法(四) → 完整專案(五)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
指令字首用途資料內容
OK客戶端準備就緒無
StartPokers發牌序列化 PokerGroup
AreYouLandLord叫地主權限無
IamLandLord / LandLordPokers地主確認與底牌底牌資料
client / server出牌序列化 PokerGroup
Order出牌權限傳遞無
Pass / IamIsBiggest / NoBiggest不出/最大宣稱/取消最大無