2010-02-23 64 views
0

我正在使用套接字進行項目,實際上它運行在我們的環境中,並且沒有出現故障 (局域網)。套接字編程在NAT網絡中失敗

當我嘗試在其中採用NAT在他們的環境中的客戶端上運行它 我的程序失敗(即)無法通過我創建的客戶端程序連接到服務器。

如何更改程序?有一個名爲SocketOption的Enum能幫助解決我的問題嗎?

我想從一個NAT的計算機在同一網絡中傳輸到NAT的計算機

要設置賞金這個問題

+0

你應該修改你的消息的佈局:P似乎嗨的消息被置爲「代碼」,失敗?它如何失敗,你會得到一個例外或某件事情? – Peter 2010-02-23 15:13:35

+3

客戶端在哪裏,服務器在哪裏?從NAT內部網絡連接到公共互聯網上的服務器應該可以工作。除非設置了明確的端口轉發,否則從公共互聯網連接到NAT-ed網絡內的服務器將無法工作。順便說一句,套接字選項與此無關,它是讓你得到的路由。 – 2010-02-23 15:24:26

+0

@NikolaiNFetissov我同意你提到的,但雅虎和Skype等如何做呢? – Smith 2012-03-08 22:58:56

回答

0

搜索了一段時間後,發現此信息

NAT不你通常可以在語法上進行控制。 (有UPNP,但我從未見過它工作。)如果您需要將客戶端連接到位於NAT後面的服務器,則必須手動配置NAT設備(路由器)以執行端口轉發。

鏈接: http://blogs.msdn.com/ncl/archive/2009/07/27/end-to-end-connectivity-with-nat-traversal-.aspx

+0

這可能是一箇舊帖子,但在很多軟件和視頻遊戲的情況下,它們是如何取而代之的。我在局域網上,我想知道如何通過局域網使服務器/客戶端軟件工作。 – Shaun 2012-01-03 13:39:13