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

GNetLib - java.net.BindException: Cannot assign requested address: JVM_Bind

我正在使用 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?

您只能使用当前主机本地的 IP 地址。您不能使用位于调制解调器、路由器等另一端的 IP 地址。我只绑定到 0.0.0.0,这是 [=14= 中 nullInetAddress ]: 然后你在任何接口上监听,路由器将负责端口转发,如果你设置正确的话。