所以,我一直在阅读 NAT-Punchthrough。我似乎明白了这个想法,但我很难实现它,我觉得我在这里错过了一步。测试这个功能有点困难,因为当涉及到基于互联网的连接时,我几乎无法控制环境。
我有一个 SQL 服务器作为我的“促进者”运行,它保存服务器和客户端的外部地址,以及外部看到的它们的端口。
以下是到目前为止的步骤: - 我通过存储服务器/客户端 IP/PORT 的 Web 请求(PHP 脚本)连接到我的 SQL 服务器 - 当两者都已知时,客户端和服务器都尝试连接(服务器主机在设置的端口上,客户端通过设置的端口连接) - 没有发生任何重大事件
这里有两个未知数,我想和你一起检查一个。NAT-Punchthrough 是否确实要求我使用我计划在之后的步骤中连接的确切(内部/LAN)端口执行第一步?
如果是这样,我不知道我的服务器在水下究竟是如何工作的,所以它可能需要比我最初给定的静态端口更多的端口来连接,但这至少给了我一个提示。
如果有人有更多关于这方面的文件然后我,请告诉我。
资料来源:
编程 P2P 应用程序
http://www.mindcontrol.org/~hplus/nat-punch.html