【发布时间】:2011-04-10 19:28:12
【问题描述】:
我有以下结构:
try {
serverSocket = new ServerSocket(port);
} catch (Exception e) {
throw new RuntimeException("Could not create server socket.");
}
构造失败,我收到“无法创建服务器套接字”错误。端口始终为 8085。我在(Windows 7)防火墙中打开了出站和入站端口。可能是什么问题?
异常是IOException:
线程“主”java.lang.RuntimeException 中的异常:无法创建服务器套接字。 在 cs236369.proxy.ProxyServer.(ProxyServer.java:23) 在 cs236369.proxy.ProxyServer.main(ProxyServer.java:62)
运行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)
【问题讨论】:
-
e 有什么例外?你能把它打印出来贴在这里吗?
-
你是用管理员用户登录windows的用户吗?
-
我以系统中唯一的用户身份登录,即管理员。
-
8085 当前是否被任何其他进程使用?
netstat -an在这里会有所帮助。对于 e.printStackTrace() 的结果 +1 会有所帮助。 -
捕获异常以引发异常对我来说听起来像是不好的做法。