networkcomms.net 來自英國的網絡通信框架 官方網址 www.networkcomms.net 中文網址www.networkcomms.cn
在網絡通信程序中,本地的類或者對象,要傳輸到通信的另一端,在網絡上傳輸的時候是二進制流的形式。
那麼在發送消息的時候要把對象序列化為二進制流
對方接收到二進制數據流要還原成對象。
我們知道使用Tcp協議傳輸消息的時候有消息邊界問題,要解決這個問題,方法有很多,比如:
(1)固定尺寸的消息
(2) 使用消息尺寸信息
(3) 使用消息標記
我們看一下networkComms通信框架中是如何解決消息邊界問題的,用一張圖來說明:
NetworkComms框架在把Packet對象序列化二進制數據時
如上圖 ,第一個字節存放 PacketHeader的長度,接收端根據第一個字節存放的數據包包頭長度,解析出數據包包頭,然後根據數據包包頭中含有的數據部分的長度,解析出數據部分。
消息序列化二進制數據流時,需要使用序列化器,networkcomms框架默認使用網上流行的protobuf.net 序列化器。當然您也可以使用.net自帶的
BinaryFormatter進行序列化,或者其他的序列化器,只要您在序列化的時候指定一下序列化器即可