我编写了一个应用程序,其中必须将客户端直接相互连接并保持连接。在使用高级技术(谷歌)进行一些研究后,我发现我需要的可以通过 NAT-Punching 或 NAT-Traversal 来实现。
大多数人似乎通过 UDP 使用 NAT-Punching,但在我的情况下,我需要使用 TCP 来执行此操作(这是事实,在有人问“为什么不使用 UDP?”之前)并且我找不到任何示例代码这个或至少是一个适当的教程。我所能找到的只是理论上的附件,但没有 Sockets 或 TCPClients(我更喜欢套接字。)。
有人可以链接我一些示例代码,我可以使用这些示例代码连接 NAT 后面的两个客户端,或者将我链接到带有示例代码的完整教程吗?我知道这个目标在 .NET 中很难实现(我使用的是 VB.NET,但我也能够阅读和理解 C#),但它应该是可能的。
UPnP 不是一个选项,因为一些 NAT 出于安全原因将其停用。