当我尝试设置套接字服务器时,我收到一条错误消息:
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。还会出什么问题呢?
发布于 2012-01-23 06:12:45
正如其他人所指出的,它很可能与使用端口9999的另一个进程有关。在Windows上,运行以下命令:
netstat -a -n | grep "LIST"它应该列出所有占用港口的东西。当然,您必须在任务管理器中手动删除这些程序。如果这仍然不起作用,请替换该行:
serverSocket = new ServerSocket(9999);通过以下方式:
InetAddress locIP = InetAddress.getByName("192.168.1.20");
serverSocket = new ServerSocket(9999, 0, locIP);当然,使用您的实际IP地址替换192.168.1.20,或者使用127.0.0.1。
发布于 2012-10-31 22:04:13
它可能与您的/etc/hosts中的misconfiguration相关。在我的例子中,它是这样的:用192.168.1.11 localhost代替127.0.0.1 localhost
发布于 2013-08-02 10:04:21
对于那些希望解决类似问题而查看此答案的其他人,我收到了类似的消息,因为我的ip地址更改了。
java.net.BindException: Cannot assign requested address: bind
at sun.nio.ch.Net.bind(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:126)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
at org.eclipse.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.java:182)
at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:311)
at org.eclipse.jetty.server.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:260)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
at org.eclipse.jetty.server.Server.doStart(Server.java:273)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)https://stackoverflow.com/questions/8965155
复制相似问题