2013-06-25 64 views
0

我正在用一些端口號創建一個SerevrSocket。
但有時我會得到BindExceptionAddress already in use連接之前的Android檢查套接字狀態

所以有什麼機制,我可以檢查之前綁定ServerSocket是否正在使用或不。

還有什麼是處理BindException的最佳方式?

回答

0

聽起來像你在你的程序退出之前沒有正確關閉你的套接字。 套接字需要在onDestroy方法中關閉。

0
try { 
        ServerSocket server = new ServerSocket(0); 
        port = server.getLocalPort(); 


        server.close(); 
       } 
       catch (Exception e1){ 
        Log.e("Error in Finding socket",e1.getMessage()); 
       } 

上面的代碼片段爲您提供了可用的免費端口。但正如前面提到的那樣,檢查套接字是否關閉以前的連接。