我一直在寻找一个简单的UDP C++库,它提供了一段时间的可靠性。我刚刚遇到了ENet,它看起来很完美,只是我在文档中找不到对NAT孔穿孔的任何支持。互联网上似乎有几个人在讨论这个问题,但我还没有找到一个确切的答案来说明这是否可能。
我已经有一个第三方服务器,它被配置为向客户端发送外部ips &端口。
如果可能的话,有人能给出一些伪代码/步骤来描述这个过程吗?
发布于 2018-04-05 20:32:26
使用眩晕进行打孔,然后使用ENet。
与眩晕服务器通信,并检索公共端点和NAT类型。确保NAT类型是打开的,然后继续=>在用于与服务器通信的套接字上使用getsockname,以获取本地端点,然后关闭该套接字。
现在创建ENet服务器并使用本地端点初始化它。现在,来自其他计算机的ENet客户端可以使用公共端点连接到服务器。
发布于 2014-07-08 15:08:33
UDP可能会丢弃数据包,也可能会按顺序发送数据包。对数据包进行排序是很简单的。但是,如果丢了一个包,就没有办法恢复它。但是,许多执行UDP的系统将为您提供另一个具有重复数据的流。在这种情况下,您可以简单地使用辅助流创建一个备份,然后更新检查第一个流中丢弃的数据包是否在第二个流中可用。
https://stackoverflow.com/questions/24634870
复制相似问题