2011-03-19 71 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。