C++ 非阻塞连接超时

C++ 非阻塞连接超时,c++,linux,tcp,C++,Linux,Tcp,我正在执行非阻塞连接到服务器 选择在服务器上下/忙时使用什么超时值?< /P> p.S. 由于服务器关闭或繁忙,连接可能会失败 如果服务器关闭,我将始终以选择超时结束 更有趣的情况是服务器繁忙时。不超过1秒就足够进行TCP握手了。如果连接到服务器的时间过长,则与服务器的所有通信都将延迟。因此,选择“最长1秒”是否是合理的决定?这真的取决于您,但我认为10-20秒可能是合理的超时时间 ,因此这是您可以使用的一个标准。与服务器的连接应该几乎立即完成。我认为这可能有点主观,但几秒钟就足够了。对于最近的

我正在执行非阻塞连接到服务器

<>选择在服务器上下/忙时使用什么超时值?< /P> p.S.

由于服务器关闭或繁忙,连接可能会失败

如果服务器关闭,我将始终以选择超时结束


更有趣的情况是服务器繁忙时。不超过1秒就足够进行TCP握手了。如果连接到服务器的时间过长,则与服务器的所有通信都将延迟。因此,选择“最长1秒”是否是合理的决定?

这真的取决于您,但我认为10-20秒可能是合理的超时时间


,因此这是您可以使用的一个标准。

与服务器的连接应该几乎立即完成。我认为这可能有点主观,但几秒钟就足够了。对于最近的一些工作,我们用了10秒,这抓住了我们所有的案例

数据包可能丢失,在这种情况下,节点将在超时后重新发送数据包,因此不要使用刚好足以进行握手的值。您可以玩一下
tcpdump
,断开连接(拔下以太网电缆)并查看发生了什么


大约10-20秒就可以了,但这取决于你的任务有多重要……

我想他们谈论的是其他超时:“服务器在持久连接上等待后续请求的时间量”。@dimba:没错,它们不是一回事,但它们都是远程机器请求的超时,所以他们会在同一个球场上。这个问题没有一个明确的答案。我不认为这是你的错,这只是一个非常困难的问题,你必须做一些尝试和错误,以找到一个适合你的价值观。