【发布时间】:2012-02-16 10:04:58
【问题描述】:
当我尝试设置套接字服务器时,我收到一条错误消息:
Exception in thread "main" java.net.BindException: Cannot assign requested address: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
at java.net.ServerSocket.bind(ServerSocket.java:328)
at java.net.ServerSocket.<init>(ServerSocket.java:194)
at java.net.ServerSocket.<init>(ServerSocket.java:106)
at socketyserver.SocketyServer.main(SocketyServer.java:12)
Java Result: 1
整个代码是最简单的:
public static void main(String[] args) throws UnknownHostException, IOException
{
ServerSocket serverSocket;
serverSocket = new ServerSocket(9999);
}
我 100% 确定我的端口已转发,Windows 防火墙已关闭。没有任何东西会阻塞端口 9999。还有什么问题?
【问题讨论】:
-
BindException的 javadoc 状态:表示尝试将套接字绑定到本地地址和端口时发生错误的信号。通常,端口正在使用中,或者无法分配请求的本地地址。你确定你的程序没有运行两次,第一个实例使用端口,第二个实例抛出异常,因为端口已经被第一个实例使用 -
听起来您的服务器的另一个副本已经在运行(仔细检查任务管理器),或者您刚刚杀死了另一个版本的服务器并且套接字“徘徊”了一段时间。
-
请参阅nirlevy.blogspot.co.il/2007/12/…“无法分配请求的地址”意味着(在您的情况下)“localhost”可能没有映射到有效的 IP。