socket端口冲突问题

在服务器上重新部署工程的时候报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)

 

异常。。。我真是摸不着头脑了。。。。。。。。。。。

你可能感兴趣的:(socket)