我有以下构造:

try {
    serverSocket = new ServerSocket(port);
} catch (Exception e) {
    throw new RuntimeException("Could not create server socket.");
}

并且构建失败,并且出现“无法创建服务器套接字”错误。端口始终为8085。我在(Windows 7)防火墙中同时打开了出站和入站端口。可能是什么问题呢?

异常(exception)是IOException:



运行netstat -an会得到以下结果:
TCP    0.0.0.0:8085           0.0.0.0:0              LISTENING
TCP    [::]:8085              [::]:0                 LISTENING

堆栈跟踪:
java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at cs236369.proxy.ProxyServer.<init>(ProxyServer.java:21)
at cs236369.proxy.ProxyServer.main(ProxyServer.java:63)

最佳答案

根据API,BindException



基本上,由于不干净的关机,该端口可能被另一个进程使用,甚至可能被同一应用程序的另一个实例使用。此link可以帮助您进行故障排除。

笔记:

运行netstat -an命令的发布结果似乎可以验证端口8085是否已被多个进程使用,这将导致您遇到的BindException

09-25 18:01