0

我正在用 C++ 开发服务器,当我在 while 循环中使用 recv() 时,它返回 -1 的所有时间长度,并且继续循环而不阻塞。

while(true)
{
   char buffer[1024];
   int dataLength =  recv(socket, buffer, 1024, 0)
   cout << dataLength;
}

输出:-1-1-1-1-1-1-1-1-1.............

任何人都知道如何让这个套接字阻塞直到它接收到数据?

提前致谢!

4

2 回答 2

2

可能在初始化期间出现错误尝试调用 GetLastError() 并在每次调用后打印结果

于 2012-06-16T16:39:10.087 回答
0

正如詹姆斯建议的那样,检查是否发生了套接字错误。recv()s 默认行为是阻止。另请参阅此处的此线程

于 2012-06-16T16:10:22.490 回答