do {
try {
val mServerSocket = ServerSocket()
mServerSocket.reuseAddress = true //允许地址重新复用
mServerSocket.bind(InetSocketAddress(IP, PORT))//绑定ip和端口
val socket = mServerSocket.accept()
} catch (e: Exception) {
e.printStackTrace()
}
//休眠5s重新链接 这样旧的socketserver才能释放连接
Thread.sleep(5000)
} while (true)
在重新构建ServerSocket之前需要休眠一段时间(我设定的是5s)这样旧的SocketServer才能完全释放不会引起address already in use异常。
该代码示例展示了如何创建一个ServerSocket,允许地址重用,并在遇到`AddressAlreadyInUse`异常时进行处理。当接受新连接时,如果旧的SocketServer未完全释放,程序会休眠5秒以避免异常。
4057

被折叠的 条评论
为什么被折叠?



