OGeek|极客世界-中国程序员成长平台

标题: c++ - 使用 ENet 进行 NAT 打洞 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 08:25
标题: c++ - 使用 ENet 进行 NAT 打洞

我一直在寻找一个简单的 UDP C++ 库,它提供了一段时间的可靠性。我刚刚遇到 ENet,它看起来很完美,只是我在文档中找不到任何对 NAT 打洞的支持。网上好像有几个人在讨论这个问题,但我还没有找到确切的答案。

我已经有一个第三方服务器,它被配置为向客户端分发外部 ips 和端口。

如果可能的话,有人可以提供一些描述该过程的伪代码/步骤吗?



Best Answer-推荐答案


我想通了。这是我所做的:

  1. 为当前客户端创建主机
  2. 连接到第 3 方服务器
  3. 当另一个客户端连接到第 3 方服务器时,它会将其他客户端信息发送给每个客户端
  4. 在收到对等方地址后,每个对等方尝试在用于连接服务器的同一套接字上与另一个对等方建立连接,并开始向该地址发送数据包。这最初是我的问题。我只发送了几个数据包,它们很容易丢失。连接只能工作一半的时间。我最终生成了一个发送数据包的线程,直到连接成功或失败。
  5. 应在发送几个数据包后建立连接

关于c++ - 使用 ENet 进行 NAT 打洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24634870/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4