【问题标题】:GNetLib - java.net.BindException: Cannot assign requested address: JVM_BindGNetLib - java.net.BindException:无法分配请求的地址:JVM_Bind
【发布时间】:2015-06-01 05:51:41
【问题描述】:

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

【问题讨论】:

    标签: java network-programming


    【解决方案1】:

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

    【讨论】:

    • 我将 HOST 更改为 0.0.0.0,但仍然无法从客户端连接。但是这一次它确实绑定了,客户端不会连接。
    • 新问题。连接不上怎么办?连接超时?连接被拒绝?这些是防火墙/端口转发问题。
    • 我将发布一个新问题,感谢您帮助我解决这个问题!
    • 基本上我打开应用,一直说获取地址,但始终连接不上。
    猜你喜欢
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2016-02-23
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多