2014-04-12 26 views
1

我已經看過一些關於SO的答案,但無濟於事。我如何檢查一個端口是否已經打開,如果已經打開,請關閉它,然後從Java代碼打開該端口上的套接字?有沒有辦法檢查一個端口是否在android上以編程方式打開?

詳細信息:我想打開端口號5000並將其綁定到udp套接字。但是,每當我在該端口上打開套接字時,我都會收到一個異常「地址已在使用中」。我怎樣才能確保端口可用?在終止應用程序時重寫onDestroy()以關閉套接字似乎並不這樣做。

+2

請添加更多的細節,這是不是你用什麼庫來創建UDP套接字一個很好的問題 – Starscream1984

+0

?您也有可能使用該端口以及完全鎖定的防火牆設置。 – CodeCamper

+0

@ Starscream1984無需進一步細節。你可能不會親自理解這個問題,但這本身並不會使它「不好」。 – EJP

回答

4

我已經看過一些SO的答案,但無濟於事。

很難相信。

如何檢查如果一個端口是開放已經

嘗試如下綁定到它。如果您遇到BindException,它正在使用中。

如果已經打開

你不能關閉它。

然後從Java代碼打開該端口上的套接字?

DatagramSocket ds = new DatagramSocket(port); 
+0

我正好使用你提到的這種方法。請參閱我的問題中的評論中添加的代碼片段。 – Arun

+1

所以你做得對。你的問題? – EJP

+0

沒關係。我在同一端口的其他地方創建了另一個套接字。我現在走了一條不同的路線,而且一切正常。感謝您的回答 – Arun

相關問題