【问题标题】:TCP Socket binding timeoutTCP 套接字绑定超时
【发布时间】:2013-05-15 02:06:35
【问题描述】:

我对服务器端 tcp 绑定套接字的时间限制有疑问。

在我的调查中,我发现如果 tcp 客户端套接字向服务器发送关闭消息,客户端将进入 TIME_WAIT 状态持续 2 个 MSL。

如果客户端套接字连接到服务器,但没有发送关闭消息。它也不会向服务器发送任何数据。服务器端套接字是否连续绑定此套接字并且在服务器关闭之前不会永远关闭它?

服务器端的tcp绑定socket有限制超时吗?

感谢您的阅读并希望您的回复。

【问题讨论】:

    标签: python sockets tcp timeout


    【解决方案1】:

    不,没有时间限制。连接的套接字保持连接,直到连接关闭。

    如果您想确保连接的两端仍然处于活动状态,您可以在您的协议中添加这样的“处于活动状态”消息,如果另一方在一段时间内没有应答,您可以关闭联系。还有 SO_KEEPALIVE socket option 的内置功能会为您处理这个问题,但默认超时是两个小时。

    【讨论】:

    • 谢谢。那么如果我将值设置为socket.settimeout(value)函数link,到达超时时socket会关闭吗?
    • @WayneHong 这似乎是关于阻塞操作的超时。例如。如果您有一个阻塞套接字并在没有数据可用时尝试接收。 SO_KEEPALIVE 的超时设置取决于操作系统,我不记得它是如何/在哪里更改的。搜索一下。
    猜你喜欢
    • 2019-07-11
    • 2012-11-25
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2013-03-30
    • 1970-01-01
    相关资源
    最近更新 更多