C# 在C中仅使用免费的STUN和TURN服务器进行NAT遍历#

C# 在C中仅使用免费的STUN和TURN服务器进行NAT遍历#,c#,nat,nat-traversal,online-game,C#,Nat,Nat Traversal,Online Game,我正在尝试制作一个在线游戏应用程序,它通过互联网与另一台pc进行点对点通信。 由于这两台pc都可能使用NAT,而且我负担不起外部服务器,所以我认为唯一的办法是使用免费的眩晕和翻转服务器,例如 然而,经过一些研究,我不知道如何使用这些服务器建立连接 真的有可能只使用这些服务器吗?如果是,你会怎么做? 还是有更简单的方法 我可以使用UDP或TCP进行此操作。请查看。Is是UPNP协议的一个扩展,非常易于使用,几乎所有路由器都支持它,并且有一些免费的LIB实现此协议。谢谢!!我还没有试过,但它看起来像

我正在尝试制作一个在线游戏应用程序,它通过互联网与另一台pc进行点对点通信。 由于这两台pc都可能使用NAT,而且我负担不起外部服务器,所以我认为唯一的办法是使用免费的眩晕和翻转服务器,例如

然而,经过一些研究,我不知道如何使用这些服务器建立连接

真的有可能只使用这些服务器吗?如果是,你会怎么做? 还是有更简单的方法


我可以使用UDP或TCP进行此操作。

请查看。Is是UPNP协议的一个扩展,非常易于使用,几乎所有路由器都支持它,并且有一些免费的LIB实现此协议。

谢谢!!我还没有试过,但它看起来像我一直在寻找的@不客气!如果真的回答了你的问题,请考虑接受答案。好的编码!嗯,我试过类型库,但它对我不起作用。。。UPnPNATClass.StaticPortMappingCollection以某种方式返回null,我无法向其中添加新端口。我检查了路由器中的UPnP选项是否已打开,并且windows允许网络发现,因此我认为UPnP是可用的。@eivour您可能在库中发现了一个错误,或者您从文档中遗漏了一些细节。你在用哪个图书馆?尽管我知道它是什么以及何时使用它,但我以前从未使用过UPnP,但我会尽我所能帮助你。要么你的路由器不完全兼容,要么它需要重新启动:我见过一些路由器(特别是D-Link路由器)需要重新启动,要么需要禁用/启用UPnP功能以使其正常工作。如果示例应用程序也不工作,我相信这不是API本身的问题。