我继承了尝试建立TCP套接字的代码,以诊断设备与某些网址的连接。在某些情况下,TCP套接字将在我们设置的超时阈值后超时。我的问题是,手动重试套接字连接与仅增加超时阈值之间是否存在差异?
请记住,这是在正在安装和配置的设备上使用的诊断工具,因此它们的网络配置可能会在套接字连接中发生变化。 TCP套接字是否会考虑网络更改(如网关,DNS或本地IP)并在超时之前建立连接(假设网络更改在套接字通常超时之前完成)或者是否需要建立新的套接字连接?或者增加超时与手动重试套接字连接之间没有真正区别吗?
答案 0 :(得分:2)
由于多种原因可能会发生超时,但想象下一种情况:
现在,您已经增加了超时 - 这不会改变情况
如果您有重试 - 新数据包将在超时的情况下发送,如果失败是暂时的,那么您最终将建立连接
结论 - 超时应设置为一些合理但非常小的值,并且您应该进行多次重试,同样是一些合理的数字。