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