socketServer = tcpl.AcceptSocket(); Byte[] commond=new Byte[0];
Byte[] store=new Byte[0];
// 循环接收数据
while (true)
{
Byte[] stream = new Byte[5];
int num = socketServer.Receive(stream);//接受连接请求的字节流
if (num <= 0)
{
break;
}
// 接收数据
commond = new Byte[store.Length + stream.Length];
store.CopyTo(commond, 0);
stream.CopyTo(commond, store.Length);
store = commond; // 如果接收的数据 小于分配空间,则跳出
if (num < stream.Length)
{
break;
}
}上面的代码 ,当我发送的数据 刚好是 5的倍数时 就卡住了,int num = socketServer.Receive(stream) 并不会返回0 这应该在怎么处理
Byte[] store=new Byte[0];
// 循环接收数据
while (true)
{
Byte[] stream = new Byte[5];
int num = socketServer.Receive(stream);//接受连接请求的字节流
if (num <= 0)
{
break;
}
// 接收数据
commond = new Byte[store.Length + stream.Length];
store.CopyTo(commond, 0);
stream.CopyTo(commond, store.Length);
store = commond; // 如果接收的数据 小于分配空间,则跳出
if (num < stream.Length)
{
break;
}
}上面的代码 ,当我发送的数据 刚好是 5的倍数时 就卡住了,int num = socketServer.Receive(stream) 并不会返回0 这应该在怎么处理
Receive前检查socketServer.Available是否大于0。等于0直接就退出循环就行了。