好的,因此我需要使用C++编写的应用程序才能建立对等UDP连接。我考虑过打孔和UPNP(使用端口映射)。打孔似乎有些困惑:您需要服务器,大量垃圾UDP数据包。我真的不想弄乱服务器,所以我选择了UPNP。我建立了miniupnpc http://miniupnp.free.fr/库,并在家里愉快地使用了它。但是,当我在另一个网络中尝试过我的应用程序时,结果却非常令人沮丧:
因此,我有2个问题:
谢谢!
最佳答案
您不能信任随机路由器来支持UPnP IGD端口映射,并且绝对不能信任要启用的功能。
严格来说,在典型的家庭网络中打孔并不需要第三方服务器,但是您确实需要一种使端点知道彼此的外部IP地址和端口的方法:那时,两台机器都可以开始向彼此发送消息:最初的消息确实会被丢弃,但是当路由器看到内部IP已将数据包发送到外部IP时,它也将允许传入流量(因为路由器将其视为来自内部IP的数据包的响应,即使它们不是)。真的)。
请参阅ICE,以了解与该区域类似的标准。
关于c++ - 对等连接,当一个对等连接位于NAT之后时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25908144/