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