gpt4 book ai didi

c++ - 两台电脑不开端口通信,使用第三台电脑建立连接

转载 作者:太空狗 更新时间:2023-10-29 23:54:13 26 4
gpt4 key购买 nike

假设我有一个服务器,两个客户端连接到它。 (通过 TCP,但没关系)

我的目标是允许这两个客户端之间建立直接连接。这是为了允许两个玩家之间的直接语音联系,例如,或者他们可能安装的任何其他不需要服务器交互的客户端插件(比如在两者之间玩某种随机游戏)。服务器可以在那里帮助建立连接。

从 duskwuff 的回答中,我得到了几个线索:

http://en.wikipedia.org/wiki/STUN它描述了一个算法来做到这一点,并且
http://en.wikipedia.org/wiki/UDP_hole_punching

从中,我获得了更多线索:

http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html
http://nutss.gforge.cis.cornell.edu/stunt.php -- 使用 TCP 的可能 STUN 实现

随着时间的推移,我肯定可以为我的程序设计出一些东西。现在我正在使用 C++ 和 TCP(Qt 套接字或 Boost 套接字),但如果需要,我不介意在 C 中执行 UDP 并将其包装。

任何有 C 和 C++ 经验的程序员都可以通过链接到示例程序、更新的库或任何其他有用的信息来提供使这更容易的技巧。一个记录在案的、灵活的和工作的 C++ TCP 实现将是最好的,但我会接受我得到的!

最佳答案

在 NAT 中打 TCP 漏洞有时/经常是可能的(这取决于 NAT 行为)。这不是一个简单的学习主题,但请阅读 Practical JXTA II(可在 Scribd 上在线获取)中有关 NAT 穿越的相应章节,以了解要解决的问题的本质。

然后,阅读this .它来自写这篇文章的人:http://nutss.gforge.cis.cornell.edu/stunt.php (您问题中的一个链接)。

我不是 C/C++ 专家,但要解决的问题不是特定于语言的。只要您可以从您的代码库访问 TCP,就足够了。请记住,实现 UDP 遍历比 TCP 更容易。

希望这些提示有所帮助。

附注:我不知道该解决方案的 C/C++ 实现。经作者确认,康奈尔链接中提到的代码不可操作。我试图自己复活它,但他让我知道它完全是为了研究目的而调整的,远未准备好投入生产。

关于c++ - 两台电脑不开端口通信,使用第三台电脑建立连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7327728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com