但是现在出现了一些问题,希望大家帮助下
在解析协议时有时无法正确解析
在协议中小弟只规定了传输信息的长度,其他的都没定义。谁能给点建议
5 个解决方案
#1
谁知道你怎么定的,怎么解的...
你先找个例子看看去吧,一般的协议如何去定义。
你先找个例子看看去吧,一般的协议如何去定义。
#2
receivecSocket.Receive(byte[] buffer)
byte[] blbuffer=new byte[4];
Array.Copy(buffer,0,blbuffer,0,4);
Econdig.UTF8.GetString(blbuuer);
在这里的时候就出错了
byte[] blbuffer=new byte[4];
Array.Copy(buffer,0,blbuffer,0,4);
Econdig.UTF8.GetString(blbuuer);
在这里的时候就出错了
#3
判断buffer的长度
tcp中接收数据要考虑是否沾包 仅仅自己定义消息协议是不够的 还要处理接受的数据是否完整等等。。
tcp中接收数据要考虑是否沾包 仅仅自己定义消息协议是不够的 还要处理接受的数据是否完整等等。。
#4
可是我的这个字节数据就是用来定义传输流的长度的啊,这个都不能保证完整性的话,那其他的还如何解析啊。。。
#5
不好意思,我的buffer长度绝对要大于4的,因为编码的机器和这个不是一个,不大方便帖出全部代码。单是在前边已经判断过了数据长度和缓存长度了。
#1
谁知道你怎么定的,怎么解的...
你先找个例子看看去吧,一般的协议如何去定义。
你先找个例子看看去吧,一般的协议如何去定义。
#2
receivecSocket.Receive(byte[] buffer)
byte[] blbuffer=new byte[4];
Array.Copy(buffer,0,blbuffer,0,4);
Econdig.UTF8.GetString(blbuuer);
在这里的时候就出错了
byte[] blbuffer=new byte[4];
Array.Copy(buffer,0,blbuffer,0,4);
Econdig.UTF8.GetString(blbuuer);
在这里的时候就出错了
#3
判断buffer的长度
tcp中接收数据要考虑是否沾包 仅仅自己定义消息协议是不够的 还要处理接受的数据是否完整等等。。
tcp中接收数据要考虑是否沾包 仅仅自己定义消息协议是不够的 还要处理接受的数据是否完整等等。。
#4
可是我的这个字节数据就是用来定义传输流的长度的啊,这个都不能保证完整性的话,那其他的还如何解析啊。。。
#5
不好意思,我的buffer长度绝对要大于4的,因为编码的机器和这个不是一个,不大方便帖出全部代码。单是在前边已经判断过了数据长度和缓存长度了。