我在C#中創建了一個服務器/客戶端應用程序。服務器連接到NAT後面的客戶端
我的問題如下:假設客戶端位於NAT(如路由器)後面並嘗試連接到服務器。從服務器的角度來看,服務器只知道客戶端的外部IP地址。你如何確定哪個計算機發送數據包到NAT後面?我知道從客戶端的路由器端口轉發是解決這類問題的常用方法,但是如果您查看諸如Skype的應用程序,則無需端口轉發即可正確建立服務器與NAT背後的許多客戶端之間的連接。反過來也可以提出這個問題(I.E:客戶端到服務器後面的NAT)。
我在套接字編程方面很新穎,所以我很樂意聽到任何我可以閱讀的指南或材料來完全理解這些東西。
http://www.cisco.com/en/US/tech/tk648/tk361/technologies_tech_note09186a0080094831.shtml –
檢出SignalR。它使這很容易。 –
關於點對點應用程序(Skype&Friends)如何通過'NAT'路由器建立連接,甚至可以通過谷歌的'UDP Hole Punching'和/或'STUN'建立連接。 – alk