socket循环接收二进制判断结束的问题
客户端这边接收的是二进制流,数据中有中文也有英文,结束符是一个随机的字符串。
现在遇到的问题是:循环接收的时候,会把每次接收的字节数组转化字符串,然后累加,然后判断是否包含结束符,包含则循环结束。
但是中文会存在乱码的问题,原因应该是循环接收的字节数组的大小有一定概率的截断了中文字符,转化为字符串的时候就会存在部分乱码的问题。
求解决。
个人想到的是每次累加字节数组,然后整体转化为字符串,再进行判读?请问下有没有什么更好的方法,,或者该方法可行的话,c#中字节数组该如何累加
谢谢。。
[解决办法]
定义一个消息结构,先传总长度,收完再转化字符串
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
[解决办法]
乱码要么是截断,要么是双方编码不匹配,定义头信息,指明要接受的总长度,循环接受至达到这个数值位置,可以传递byte[],解码时要编码一致
[解决办法]
严重同意楼上二位大神的建议,还是规定数据结构,设置长度的好。
[解决办法]
为什么不用字符串,为什么不用tcpclient
[解决办法]