如何在没有端口转发的情况下实现跨网络的应用程序通信

如何在没有端口转发的情况下实现跨网络的应用程序通信

我希望我的标题足够清楚,并且这里是发布此问题的正确地方。我是一名自学成才的 Java 开发人员,我有一个应用程序,我正尝试让它与“许可证服务器”通信以验证密钥是否正确。为了模拟这一点,我希望一台计算机上的应用程序能够与另一台计算机上的应用程序通信。我已经通过在同一网络上使用 Java 套接字编程实现了这一点。我的下一个目标是让它在不同网络上工作。

我最了解的一种方法是端口转发。出于测试目的,我应该使用路由器的外部 IP 作为套接字调用,然后我应该设置路由器以将传入流量转发到我的“服务器”计算机的 IP 和端口。理论上它应该有效。但是,由于我正在使用 2 个 AT&T 家庭基地,我偶然发现 AT&T 禁用了这些类型路由器的端口转发,即使路由器的 UI 有能力这样做。

这非常令人沮丧,因为我无法用我当前的设置实现概念验证。所以我的问题是:除了端口转发之外,我还可以用什么方式实现跨不同网络的应用程序通信?

我尝试研究代理服务器和 ssh,但我真的不知道如何应用它们进行测试,我也不完全了解它们。我还读到,第三方软件可能会帮助我解决 AT&T 对端口转发的顽固坚持,但除非必要,否则我不太喜欢这种解决方案。

我已经自学了 Java,现在是时候学习一些网络知识了。了解如何实现这一点将非常有帮助,也非常值得赞赏。感谢您的帮助!

相关内容