我在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
它有多久一直聽? –