我在 java 中实现了一个客户端服务器应用程序,它工作正常。现在,如果我netstat -a
在 shell 中查看活动连接,我会看到有很多以下形式的孤立连接
TCP 127.0.0.1:54725 Sin-Host:0 LISTENING
例如,如果我在端口 58185 上创建一个服务器,如下所示
TCP 127.0.0.1:58185 Sin-Host:0 LISTENING
当客户端连接到它时,我得到两个连接,如下所示
TCP 127.0.0.1:58185 Sin-Host:0 LISTENING
TCP 127.0.0.1:58185 Sin-Host:58187 ESTABLISHED
TCP 127.0.0.1:58187 Sin-Host:58185 ESTABLISHED
现在,当我关闭客户端和服务器时,第一个连接仍然存在(即处于LISTENING
非状态TIMED_WAIT
)
我认为当我关闭客户端和服务器时,没有理由保持第一个连接。这是一个错误吗?它并没有真正影响我的程序,但我只是想知道,以便我知道它的影响。
**EDIT : How long do these orphans last**
我重新启动了我的系统,所有的孤儿都消失了。我重复了测试,发现即使在应用程序关闭后孤儿仍然存在,但在系统重新启动后消失。
也许我猜这是一些系统设置阻止它首先运行。?