我正在执行非阻塞连接到服务器。
在选择中使用什么适当的超时值来考虑服务器停机/忙碌?
P.S。
由于服务器已关闭或占线,连接可能会失败。
如果服务器关闭,我总是会以选择超时结束。
更有趣的情况是服务器忙。恕我直言1秒就足以进行TCP握手。如果连接服务器的时间太长,则与服务器的所有通信都将延迟。那么选择最长1秒是否合理决定等待?
答案 0 :(得分:2)
数据包可能会丢失,在这种情况下,节点会在超时后重新发送它,因此请勿使用足以进行握手的值。你可以用tcpdump
玩一下,断开连接(拔下以太网线),看看发生了什么。
10-20秒之类的东西应该没问题,但这取决于你的任务有多重要......
答案 1 :(得分:1)
几乎可以立即连接到服务器。我认为这可能有点主观,但几秒钟应该绰绰有余。对于最近的一些工作,我们使用了10秒,这已经抓住了我们所有的情况。
答案 2 :(得分:0)
这真的取决于你,但我想像10-20秒这样的时间是合理的时间。
Apache's default KeepAliveTimeout is 15 seconds,这是您可以使用的一个标准。