我看过很多类似的问题和对应的维基百科文章(NAT遍历, STUN, TURN, TCP穿透),但是这些海量的信息并没有真正帮助我解决我的非常简单的问题:
我正在编写一个 P2P 应用程序,并且我希望在 NAT 后面使用我的应用程序的两个用户能够相互连接。连接必须是可靠的(与 TCP 的可靠性相当),因此我不能只切换到 UDP。解决方案应该在今天的常见系统上工作,不需要重新配置。如果有帮助的话,解决方案可能涉及可连接的第三方,只要它不必代理整个数据(例如获取同行的外部(WAN)IP地址)。
据我所知,我唯一的选择是使用“可靠UDP”库+UDP打洞。是否有这方面的(C/C++)库?我在一个相关问题中找到了enet,但它只处理解决方案的前半部分。
还有其他什么吗?我看过的东西:
我正在编写一个 P2P 应用程序,并且我希望在 NAT 后面使用我的应用程序的两个用户能够相互连接。连接必须是可靠的(与 TCP 的可靠性相当),因此我不能只切换到 UDP。解决方案应该在今天的常见系统上工作,不需要重新配置。如果有帮助的话,解决方案可能涉及可连接的第三方,只要它不必代理整个数据(例如获取同行的外部(WAN)IP地址)。
据我所知,我唯一的选择是使用“可靠UDP”库+UDP打洞。是否有这方面的(C/C++)库?我在一个相关问题中找到了enet,但它只处理解决方案的前半部分。
还有其他什么吗?我看过的东西: