C ++ Winsock recv没有阻塞

时间:2012-06-16 16:04:07

标签: c++ winsock

我在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 .............

任何人都知道如何阻止此套接字直到它收回数据?

提前致谢!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

正如James建议的那样,检查是否发生套接字错误。 recv()的默认行为是阻止。另请参见this thread此处。