我正在创建一个带有一些端口号的SerevrSocket
但有时我会BindException
说Address already in use
。
在绑定ServerSocket之前,我是否有任何机制可以检查它是否正在使用中。
还有什么是处理BindException
的最佳方式?
答案 0 :(得分:0)
听起来你没有在程序退出之前正确关闭套接字。 需要在onDestroy方法中关闭套接字。
答案 1 :(得分:0)
try {
ServerSocket server = new ServerSocket(0);
port = server.getLocalPort();
server.close();
}
catch (Exception e1){
Log.e("Error in Finding socket",e1.getMessage());
}
上面的代码段为您提供了可用的空闲端口。但如前所述,请检查以前连接的套接字闭包。