在客户端中,即使服务器已关闭连接,Unix流套接字仍处于CONNECTED状态

时间:2016-04-27 16:53:16

标签: sockets unix stream

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

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

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

1 个答案:

答案 0 :(得分:0)

您是否明确关闭了连接?

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