Address already in use 端口地址已在使用中

在这里插入图片描述

写一个本地服务,每次运行之后,之前的端口号使用不了,报错Address already in use 地址已在使用中,端口号被占用,老烦了,每次都得换一个端口,老不稳定了,这个得想办法解决,经过几天挣扎,找到解决方法了。

问题报错日志:

java.net.BindException: Address already in use
	at sun.nio.ch.Net.bind0(Native Method)
	at sun.nio.ch.Net.bind(Net.java:454)
	at sun.nio.ch.Net.bind(Net.java:446)
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
	at org.java_websocket.server.WebSocketServer.doSetupSelectorAndServerThread(WebSocketServer.java:567)
	at org.java_websocket.server.WebSocketServer.run(WebSocketServer.java:367)
	at java.lang.Thread.run(Thread.java:761)

解决:
其实很简单,就是退出或者应用被杀死时,结束掉当前端口得服务,再次启用时重新启动就好,而我这边得情况是,停止当前端口得服务,下次重新启动服务,这个端口号还能继续使用,其他情况,大家可以通过指令(cmd)杀掉这个端口的服务,具体方法百度一下。
例如:

override fun onDestroy() {
    
    
        // 标记服务关闭
        serviceIsLive = false
        // 移除通知
        stopForeground(true)
        super.onDestroy()
        //应用被杀死就停掉所有服务,这个后面需要优化
        stopAndServer()
        SocketServer.webStop()
        Log.e(TAG, "onDestroy")
    }

猜你喜欢

转载自blog.csdn.net/L_201607/article/details/129711103