我在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 .............
任何人都知道如何阻止此套接字直到它收回数据?
提前致谢!
答案 0 :(得分:2)
初始化期间可能存在错误 尝试调用GetLastError()并在每次调用后打印结果
答案 1 :(得分:0)
正如James建议的那样,检查是否发生套接字错误。 recv()
的默认行为是阻止。另请参见this thread此处。