Windows TCP 套接字超时C++

Windows TCP Socket Timeout C++

本文关键字:C++ 超时 套接字 TCP Windows      更新时间:2023-10-16

我有一个问题

如何知道客户端是否在指定时间内没有响应服务器?!

我正在使用线程而不是选择功能。

您的帮助将不胜感激:)

谢谢。

您需要按如下方式研究[设置套接字选项][1]:

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

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

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

WSAE 会阻止10035

资源暂时不可用。

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