【问题标题】:In Client, Unix stream socket is still in CONNECTED state even though server has closed the connection在客户端,Unix 流套接字仍然处于 CONNECTED 状态,即使服务器已经关闭了连接
【发布时间】:2016-08-22 02:55:43
【问题描述】:

我们在客户端进程-服务器进程之间有一个 unix 域流套接字连接。当服务器终止时,它正在关闭其连接的套接字和它的侦听套接字。

有时,在客户端,Socket 仍处于 CONNECTED 状态(使用 netstat -anp | grep 。此外,在客户端,当调用 recv() 时,它返回 EAGAIN errno。这种行为仅在某些时候观察到。但是,无法理解这是怎么可能的。

如果有人可以解释它是如何可能的,那将非常有帮助。

【问题讨论】:

  • 将代码简化为最小的例子并展示给我们。

标签: sockets unix stream


【解决方案1】:

您是否明确关闭连接?

如果服务器代码在没有关闭所有连接的情况下突然终止,操作系统仍会将此连接视为活动连接,因为服务器没有时间清理。执行此操作的方法取决于所使用的语言。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 2019-04-24
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    相关资源
    最近更新 更多