GNetLib - java.net.BindException:无法分配请求的地址:JVM_Bind

时间:2015-06-01 05:51:42

标签: java network-programming

我正在使用GNetLib测试我的服务器,以便在我的计算机上进行网络连接。每当我使用我的网络IP时,它都不会让我的绑定。

GNetServer netserver = new GNetServer(ServerConstants.HOST, ServerConstants.PORT);
    netserver.addEventListener(new ServerEventListener() {

       //random stuff not related to problem
    });

    netserver.bind();

我的主人是" 76.5.43.21" //不发布我的实际IP,但你得到了要点。 端口是43594,我已经使用canyouseeme.org测试了连接,它说成功了。

以下是完整错误:

java.net.BindException: Cannot assign requested address: JVM_Bind
at java.net.DualStackPlainSocketImpl.bind0(Native Method)
at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:382)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at org.gnet.server.GNetServer.bind(GNetServer.java:98)
at org.ott.Server.main(Server.java:91)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

问题是我使用家庭网络IP,还是限制我可以使用的IP的库?

1 个答案:

答案 0 :(得分:0)

您只能使用当前主机的本地IP地址。你不能使用存在于调制解调器,路由器等另一端的IP地址。我只想绑定到0.0.0.0,这是Java中InetAddress的{​​{1}}:那么你就可以在任何接口上进行监听,如果你设置正确,路由器将负责端口转发。