我在java中实现了一个客户端服务器应用程序,它工作正常。现在,如果我做了netstat -a
在外壳看到活动连接我看到有很多形式如下关闭客户端和服务器后的孤立TCP连接
TCP 127.0.0.1:54725 Sin-Host:0 LISTENING
例如孤儿连接的,如果我创建像下面
TCP 127.0.0.1:58185 Sin-Host:0 LISTENING
端口58185的服务器
当客户端连接到它,我得到两个连接类似如下
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**
我重新启动了我的系统,所有的孤儿都不见了。我重复了测试,发现即使在应用程序关闭后,孤儿依然存在,但系统重新启动后仍会消失。
也许我猜这是一些系统设置,它阻止它首先进入。
定义'关闭我的客户端和服务器'。在每种情况下你是否真的退出了这个过程? – EJP
@EJP by'close'我的意思是我通过关闭整个eclipse来杀死运行服务器的eclipse实例。 – rockstar
它有多久一直听? –