111,120
社区成员
发帖
与我相关
我的任务
分享
楼主可以这样写
byte[] recbuff=new byte[1024*1024]
List<byte[]> list=new List<byte[]>();
while(clientSocket.Connectioned)
{
int len= clientSocket.Receive(recbuff);
//这里可以用array copy 方法复制
//为了简单用Linq了
var data=recbuff.Take(len);
lock(list)
{
//添加到集合中
list.Add(data);
}
}
///////////////////////外面取list值
lock(list)
{
data = list[0];
list.Remove(0)
}
//楼主用以上方法试试
[/quote]
感觉接收逻辑有些问题
你接收到的长度不一定是1024,怎么能循环按照1024拷贝呢?
不管网络状况是否良好,“粘包”处理是少不了的
[/quote]
就是,
这个不是丢包,是根本没有对粘包做处理。最起码的
来学习
..这么写不丢才怪。。
[/quote]
感觉接收逻辑有些问题
你接收到的长度不一定是1024,怎么能循环按照1024拷贝呢?
不管网络状况是否良好,“粘包”处理是少不了的
