【问题标题】:Port Forwarding From Within JavaJava 内部的端口转发
【发布时间】:2010-11-12 21:05:58
【问题描述】:

我计划用 Java 构建一些利用 ServerSocket 和 Socket 类的程序。我正确构建了代码,并且可以正确建立连接。但是,在建立连接和服务器时,我想让用户尽可能轻松。因此,我需要一种从 Java 中进行端口转发的方法,以便我的程序可以在客户端机器上构建服务器并通过 Internet 与其他机器通信,而程序的用户不需要付出任何额外的努力。是否有任何有效的方法可以在不访问任何需要下载的外部程序的情况下执行此操作?

【问题讨论】:

    标签: java portforwarding


    【解决方案1】:

    你可以使用这个little project

    注意:客户端机器通常位于 NAT 网关之后,因此互联网上的其他机器无法直接访问它们。

    【讨论】:

      【解决方案2】:

      将输入连接通过管道连接到输出连接怎么样?

      如果您同时检索两个套接字的InputStreamOutputStream,则可以使用PipedInputStreamPipedOutputStream 连接两个不同的套接字并转发连接。请参阅文档 herehere

      【讨论】:

      • 你仍然需要编写代码来复制流,当你完成之后你需要管道做什么?
      【解决方案3】:

      如果服务器位于 NAT 或防火墙之后,并且您不想使用中间人来促进连接,那么这将非常困难。我建议您查看NAT hole punching,特别是一些开源Java 实现,例如Rodi

      【讨论】:

      • 这仅适用于UDP,也需要更改另一端。
      猜你喜欢
      • 2012-07-19
      • 2011-12-31
      • 2018-10-14
      • 2018-12-24
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多