国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-17 02:34:08
字體:
來源:轉載
供稿:網友

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

NetworkComms網絡通信框架序言

本文基于networkcomms2.3.1開源版本 gplv3協議

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

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

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

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

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

(1)固定尺寸的消息

(2) 使用消息尺寸信息

(3) 使用消息標記

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

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

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

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴城市| 江永县| 蕲春县| 拉萨市| 会理县| 夏河县| 繁昌县| 无棣县| 台江县| 界首市| 宜都市| 苗栗县| 瓦房店市| 政和县| 肥东县| 沾益县| 张家界市| 湘乡市| 翼城县| 平山县| 兴安县| 邢台市| 潮州市| 饶阳县| 苍山县| 吉隆县| 化隆| 宜丰县| 夏邑县| 如东县| 中牟县| 赤城县| 镇沅| 福贡县| 临湘市| 河曲县| 宁阳县| 中宁县| 青河县| 鲁甸县| 喀什市|