我一直在寻找一个提供了可靠性的简单UDP C++库。我刚刚看过ENet,它看起来很完美,除了我在文档中找不到对NAT打孔的任何支持。互联网上似乎有一些人在讨论这个问题,但是我还没有找到是否可行的明确答案。

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

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

最佳答案

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

  • 为当前客户端
  • 创建主机
  • 连接到第三方服务器
  • 当另一个客户端连接到第三方服务器时,它将其他客户端的信息发送给每个客户端
  • 在接收到对等方地址后,每个对等方都尝试在用于连接服务器的同一套接字上与另一对等方建立连接,并开始向该地址发送数据包。这最初是我的问题。我只发送了两个数据包,它们很容易丢失。该连接将只工作一半时间。我最终产生了一个发送数据包的线程,直到连接成功或失败。
  • 发送几个数据包后应建立连接
  • 关于c++ - 使用ENet进行NAT打洞,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24634870/

    10-11 06:44