2014-02-22 59 views
-1

我有一個小型客戶端服務器應用程序,它涉及客戶端在一組端口(90,6100,6200)上ping服務器。我使用inet.isReachable(30000)來監視服務器是否響應客戶端。關閉連接到端口,沒有在Java中存在套接字綁定

最後,我想確保當我重新運行我的應用程序時,任何現有的連接到這些端口都將被刪除。

我該如何去做?

當我使用InetAddress時,有沒有辦法自動關閉連接?它似乎沒有任何方法來終止現有連接到地址?

+1

*你在說什麼*連接?當客戶端存在時,所有客戶端的連接都會被終止。服務器應該在讀取流結束時終止所有接受的連接。你想要解決什麼問題? – EJP

+0

只需重申你的問題沒有回答我的問題。*什麼*連接?連接在創建它們的過程中無法生存。 – EJP

回答

1

我想確保當我重新運行我的應用程序,這些端口的任何現有的連接被刪除」。

當你的應用程序退出的連接不能繼續開放 - 沒有過程他們被連接到。所以從這個意義上說,你不必擔心在下次發佈時關閉它們。

,是有辦法來自動關閉,當我利用InetAddress,這似乎沒有什麼方法來終止現有連接地址的連接?」

是 - 連接將當isReachable被響應時,或超時過期(或發生其他錯誤)時關閉。只是創建一個InetAddress不會創建連接 - 它會根據需要自動創建並銷燬它們以執行其功能。連接通常只是短暫的事情,除非你做出來才能保持開放。

1

服務器響應isReachable或超時過期後,JVM將關閉連接,以先到者爲準。

1

回答你的模糊的問題是,作爲連接不生存,他們被創造的過程,和InetAddress類「isReachable()不泄漏連接,沒有實際的問題就在這裏解決。

相關問題