我想在java中創建一個簡單的p2p信使,我設法與同一網絡中的兩臺計算機進行通信,但是當我嘗試從網絡外部向另一臺計算機發送消息時,正在消失......我知道我可以在路由器中前進,但我不想那樣做,我想讓它像雅虎,gtalk或其他im服務器那樣做。 我認爲他們使用NAT系統來做到這一點,但我不知道如何:D。幫助通過NAT與套接字進行通信
有人能解釋我NAT如何工作,如果這是解決我的問題的方式?
我讀到我需要服務器的靜態和公共IP,當客戶端(使用私有IP)向服務器發送請求時,他的NAT將知道如何處理來自服務器的消息下一次...但是如果客戶端不向服務器發送請求,並且服務器向客戶端發送數據包,則NAT不知道將數據包發送到網絡內部(到客戶端)的位置。
我想是不是正確?
非常感謝!
此外,某些路由器允許通過UPNP定義動態端口轉發,但必須啓用它。如果雙方都支持NAT,那將是我推薦的方式。 – ZeissS 2010-12-16 09:23:58
謝謝你的回答,現在我明白了這個過程! – Cata 2010-12-16 09:41:10
也就是說,如果您有權訪問這些路由器。如果一臺路由器屬於你的ISP,那會起作用嗎? – 2010-12-16 09:43:04