先附上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]+" ");
效果如下