【问题标题】:Java, gaming, and port forwardingJava、游戏和端口转发
【发布时间】:2013-07-10 01:32:08
【问题描述】:

我用 Java 创建了一个 Battleship 游戏来使用 SocketsServerSockets。该游戏在 LAN 上运行良好,但我希望能够在完全不同的网络上与某人对战。我知道端口转发是必要的,但我是否必须在每个正在玩游戏的客户端上转发端口?还是只需要转发服务器正在使用的路由器上的端口?谢谢。

【问题讨论】:

    标签: java port forwarding


    【解决方案1】:

    仅在服务器上需要端口转发。由于许多 NAT 上的操作,任何发往客户端的数据包都将从初始请求自动转发。

    所以,你只需要转发服务器上的端口即可。如果使用SocketServerSocket,如果您的路由器允许您选择,您需要转发 TCP。如果使用DatagramSockets,则在任一端点转发UDP。

    (如果您必须在客户端上转发,如果不转发端口 80,您很可能不会阅读此页面)

    【讨论】:

      【解决方案2】:

      要详细说明@hexafraction 的含义,您可以执行以下操作:

      构建任何客户端都可以连接的服务器。客户通常可以连接到他们想要的任何东西。防火墙通常对可以流入但不能流出的信息进行限制。因此,如果客户端知道要连接的服务器,他们可以在不修改防火墙的情况下连接到服务器,然后服务器将协调客户端之间的数据传输。

      【讨论】:

      • 我还会添加有关 NAT 的信息,尤其是涉及 UDP 的情况。
      【解决方案3】:

      我这样做了,我所要做的就是将我在路由器中使用的端口转发到我的本地 IP。地址。如果您不知道您的本地 IP 地址,请运行命令提示符(假设您使用 windows )并运行 ipconfig 以找出答案。如果您在家使用无线路由器通过浏览器访问 192.168.1.1 希望对您有所帮助!

      【讨论】:

        猜你喜欢
        • 2010-12-30
        • 1970-01-01
        • 2022-01-16
        • 2012-07-19
        • 1970-01-01
        • 1970-01-01
        • 2011-12-31
        • 1970-01-01
        • 2013-06-26
        相关资源
        最近更新 更多