2011-03-19 245 views
7

我正在寻找针对.Net中对等NAT穿越的建议或解决方案。假设我有一个聊天应用程序,两个客户端需要连接,但两者都在NAT后面:.Net WCF NAT穿越的最佳实践

对于家庭场景,由于只涉及电缆调制解调器或消费者路由器,uPNP可能没有问题。但是uPNP不可能的企业环境呢?

我对UDP握手很熟悉,可以进行握手,但我宁愿不依赖它来传输实际应用数据。

我也看了成IPv6和Teredo的,但我不相信,每个客户端将有IPv6的可用性,这是一个有点混乱,以所有的Teredo要求(服务器,中继等)

这是2011 IM /聊天客户已经存在了十年,然后一些 - 所以我必须相信这个问题已经解决了很多次。任何人都可以推荐我在这方面的最佳做法?提前致谢!

+0

用于处理NAT-T的外部服务器对您是否可行? – bratao 2011-03-19 20:28:04

+0

是的 - 两个客户端都必须使用第三方服务器进行身份验证,所以没关系。 我正在通过一个端口上的多个套接字调查TCP/IP孔冲孔。 WCF支持这种开箱即用的方式,因此它可能是一个完美的解决方案。 http://www.brynosaurus.com/pub/net/p2pnat/第4.2节 和 http://msdn.microsoft.com/en-us/library/ms734772.aspx – znelson 2011-03-19 20:49:40

+1

基本上 - 只是使用Teredo和所有问题得到解决。 – znelson 2011-03-21 20:07:02

回答

0

XMPP支持与NAT穿越聊天,并且有几种.NET开源客户端。使用任何XMPP服务器,例如OpenFire。