1

I have a question

How to know if a client didn't respond to the server during a specified time ?!

I am using threading not select function.

your help will be greatly appreciated :)

Thank you.

4

1 回答 1

1

您需要查看 [设置套接字选项][1],如下所示:

setsockopt(sockid, SOL_SOCKET, SO_RCVTIMEO,(char *)&tv,sizeof(struct timeval));

完成后,您可以SOCKET_ERROR在调用接收和/或发送函数时再次检查。具体的错误码可以通过调用获取WSAGetLastError

这是那些潜在的错误代码之一:

WSAEWOULDBLOCK 10035

资源暂时不可用。

此错误是从无法立即完成的非阻塞套接字上的操作返回的,例如当没有数据排队等待从套接字读取时的 recv。这是一个非致命错误,应稍后重试该操作。WSAEWOULDBLOCK 报告为在非阻塞 SOCK_STREAM 套接字上调用 connect 的结果是正常的,因为必须经过一段时间才能建立连接。

于 2014-04-06T09:24:55.810 回答