2010-02-12 70 views
0

我正在編寫一個對等二進制套接字程序。只有兩個端點。一個插座正在我的筆記本電腦系統上聽。另一個套接字是從我的桌面系統進行廣播。我有一個託管服務器上運行的第三個程序,可用於代理兩者之間的連接。我的問題是,當筆記本電腦和臺式機在同一個網絡上時,它們都具有相同的互聯網IP地址,但具有不同的內聯網IP,但是當筆記本電腦在路上時,IP地址是不同的。爲了成爲真正的點對點,我必須編寫它,以便在連接建立之後,兩臺計算機可以直接相互通信。如果兩臺計算機可能共享相同的IP地址(如果它們在同一網絡上運行),這通常如何實現?在Intranet或Internet上完成套接字連接

+0

難道你不能只使用不同的端口? – 2010-02-12 19:38:22

回答

0

你的問題是:我該如何處理P2P系統中的network address translation

一種可能性是要求在NAT /防火牆系統中插入空洞 - 這將確保對給定端口的請求發送到給定的計算機。允許網絡中的多個客戶端需要戳多個孔並用相應的端口配置每個客戶端。

涉及UDP的另一種可能性是here - 我還沒有檢查它足以知道它是否真的在握手後將代理從等式中移除。

與往常一樣,Google can be your friend

+0

謝謝,我不知道適當的術語。 – Joshua 2010-02-13 23:21:10