2009-10-08 42 views
2

我的應用程序使用特定的源端口與服務器建立出站連接(預期會出現防火牆問題 - 硬化系統可能會需要提前指定端口)。java:在不使用時綁定異常地址使用錯誤(如netstat所示)

我的問題是,我的應用程序最初進行連接。但是,如果連接斷開,它將再次嘗試,但套接字將得到一個BindException,表示「地址正在使用」。情況並非如此,如netstat -pant所示。它顯示源端口/遠程套接字對不存在(即,我甚至沒有在WAIT模式下看到它,連接就不存在)。我會盡力永遠連接,沒有任何成功。我會認爲,如果這是上一次連接徘徊的問題,它最終會超時,但事實並非如此。我永遠得到綁定異常。

在我的情況下,我連接到10.0.1.229:4001從10.0.1.20:4002。所以我使用netstat來查找源套接字(10.0.1.20:4002)或遠程套接字(10.0.1.229:4001),但在初始連接斷開後都未找到,表明地址不應該被使用。

即使netstat不報告它是否會導致此連接仍然存在?

請注意我在linux上,也意識到使用隨機源端口將解決我的問題,但不解決它。

請讓我知道。

感謝, JBU

回答

2

close()方法沒有被調用時某些不好的事情發生了 - 衛生署!

+0

感謝您發表了這個問題。我有一個非常類似的問題,但我很難用外部腳本殺死我的服務,所以我想不出在服務終止之前關閉連接的好方法。如果你可以看看這個問題,我會非常感激! http://stackoverflow.com/questions/15140588/java-server-not-releasing-connection-lock – Sal 2013-02-28 16:28:00

相關問題