在服务器上重新部署工程的时候报socket端口冲突。
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185)
at java.net.ServerSocket.<init>(ServerSocket.java:97)
at com.hundsun.epserver.monitor.Server.<init>(Server.java:76)
at com.hundsun.epserver.monitor.Server.<clinit>(Server.java:50)
at com.hundsun.epserver.servlet.InitServlet$1.run(InitServlet.java:65)
服务器程序都使用固定的端口. 当服务器程序关闭后, 有可能它的端口还会被占用一段时间, 如果此时立刻在同一个主机上重启服务器程序, 由于端口已经被占用, 使得服务器程序无法绑定到该端口, 服务器启动失败。
为了确保一个进程关闭了 ServerSocket 后, 即使操作系统还没释放端口, 同一个主机上的其他进程还可以立即重用该端口, 可以调用 ServerSocket 的 setResuseAddress(true) 方法。
添加 serverSocket.setReuseAddress(true);
修改socket后一直在报:
java.net.SocketException: Socket is not bound yet
at java.net.ServerSocket.accept(ServerSocket.java:419)
异常。。。我真是摸不着头脑了。。。。。。。。。。。