典型協議封裝格式:
[總長度(4 bytes)] [消息類型名稱長度(2 bytes)] [消息類型名稱] [Protobuf Data] [校驗碼]
流程說明
- 客戶端將業務物件用 Protobuf 序列化為 byte[]。
- 組裝協議頭:寫入總長度、類型名稱長度、類型名稱(如
com.example.MsgLogin)。
- 發送完整 byte[] 至伺服器。
- 伺服器解析頭部,反射獲取對應 Protobuf 類,反序列化 payload。
- 業務邏輯處理後,同樣封裝回應返回。
關鍵點
- 長度字段採用網絡序。
- 類型名稱約定雙方一致,支援反射解析。
- 校驗碼可用 CRC32 或簡單 XOR。
C# 參考 ProtoBuf.Serializer,C++ 參考 protobuf-c 或官方 C++ 運行庫。