1

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

4

3 回答 3

1

你可以使用这个小项目

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

于 2010-11-12T21:14:47.487 回答
0

只是将输入连接管道连接到输出连接呢?

如果您同时检索两个套接字InputStreamOutputStream则可以使用 aPipedInputStream和 aPipedOutputStream连接两个不同的套接字并转发连接。请参阅此处此处的文档。

于 2010-11-12T21:14:41.820 回答
0

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

于 2010-11-12T21:16:22.500 回答