问题描述
socket编程服务端接收客户端请求后,将byte数组转成字符串vb.netEncoding.Unicode.GetString(bytes)但转换后的字符串后有很多空值(十六进制查看为00和3F),如何清除这些空值。多谢!
解决方案
本帖最后由 studentno2 于 2016-02-09 15:36:39 编辑
解决方案二:
我是这样处理接收的数据的[code=csharpbyte[]buffer=newbyte[1024*1024*2];intr=socketSend.Receive(buffer);if(r==0){ShowMsg("客户端"+socketSend.RemoteEndPoint.ToString()+"关闭了链接");//ShowMsg是我写的一个方法break;}stringstr=Encoding.UTF8.GetString(buffer,0,r);[/code]这样子如果r=0就break了
解决方案三:
数组是否是字符串?原始字符串是否用Unicode编码?
解决方案四:
可以在最开始区域定义“header”比如发送的长度,这样就知道要读取多少了还能发现丢包做出补偿
时间: 2024-08-26 02:20:27