c#数据封包设计

先附上git地址

https://github.com/huqiang0204/huqiang.UnitySubThreadUI

c#作socket通信时,网络会产生粘包,和丢包等问题,所以通信需要封包来解决此问题。关于数据包长度问题我不作叙述,百度一大把,下面是我的封包设计,代码请看/Core/Communication/Envelope    

为了防止数据和包头包尾冲突,需要对数据进行处理,本来用byte做包头和包尾的,但是带宽损耗较大,后面采用int类型

参考函数public class Envelope.PackingInt(byte[] dat, byte type)

使用代码测试一下

byte[] dat = new byte[27];

            for (int i = 0; i < 27; i++)

                dat[i] = 255;

            var ss = PackingInt(dat, 0);

            for (int i = 0; i < ss.Length; i++)

                Console.Write(ss[i]+" ");

效果如下


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容