程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#網絡通信框架networkcomms內核解析之一 消息傳送,

c#網絡通信框架networkcomms內核解析之一 消息傳送,

編輯:C#入門知識

c#網絡通信框架networkcomms內核解析之一 消息傳送,


networkcomms.net 來自英國的網絡通信框架 官方網址 www.networkcomms.net 中文網址www.networkcomms.cn

在網絡通信程序中,本地的類或者對象,要傳輸到通信的另一端,在網絡上傳輸的時候是二進制流的形式。

那麼在發送消息的時候要把對象序列化為二進制流

對方接收到二進制數據流要還原成對象。

我們知道使用Tcp協議傳輸消息的時候有消息邊界問題,要解決這個問題,方法有很多,比如:

(1)固定尺寸的消息

 (2) 使用消息尺寸信息

 (3) 使用消息標記

我們看一下networkComms通信框架中是如何解決消息邊界問題的,用一張圖來說明:

 

  

 

NetworkComms框架在把Packet對象序列化二進制數據時

如上圖 ,第一個字節存放 PacketHeader的長度,接收端根據第一個字節存放的數據包包頭長度,解析出數據包包頭,然後根據數據包包頭中含有的數據部分的長度,解析出數據部分。

消息序列化二進制數據流時,需要使用序列化器,networkcomms框架默認使用網上流行的protobuf.net 序列化器。當然您也可以使用.net自帶的 

BinaryFormatter進行序列化,或者其他的序列化器,只要您在序列化的時候指定一下序列化器即可

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved