我有一个问题
如何知道客户是否在指定时间内没有响应服务器?!
我正在使用线程而不是选择功能。
非常感谢您的帮助:)
谢谢。
答案 0 :(得分:1)
您需要查看[设置套接字选项] [1],如下所示:
setsockopt(sockid, SOL_SOCKET, SO_RCVTIMEO,(char *)&tv,sizeof(struct timeval));
完成后,您可以在调用接收和/或发送功能时再次检查SOCKET_ERROR
。可以通过调用WSAGetLastError
来获取特定的错误代码。
这是其中一个潜在的错误代码:
WSAEWOULDBLOCK 10035
资源暂时无法使用。
此错误从无法立即完成的非阻塞套接字上的操作返回,例如当没有数据排队等待从套接字读取时的recv。这是一个非致命错误,应该稍后重试该操作。将WSAEWOULDBLOCK报告为在非阻塞SOCK_STREAM套接字上调用connect的结果是正常的,因为必须经过一段时间才能建立连接。