我正在用 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.............
任何人都知道如何让这个套接字阻塞直到它接收到数据?
提前致谢!
可能在初始化期间出现错误尝试调用 GetLastError() 并在每次调用后打印结果
正如詹姆斯建议的那样,检查是否发生了套接字错误。recv()s 默认行为是阻止。另请参阅此处的此线程。