2010-04-10 43 views
2

我正在嘗試實現點對點通信..我使用套接字進行通信。我想知道當兩個對等體位於兩個專用網絡(他們不知道對方的公有IP地址)時我是否可以使用相同的通信方式。我可以想象在衆所周知的位置共享緩衝區一種溝通方式。但是有沒有其他辦法可以完成這件事?跨兩個專用網絡的網絡通信

回答

1

您可能還需要考慮兩個對等方甚至沒有公共IP地址的情況,在這種情況下,您可以使用STUN技術來避免需要中央服務器。 STUN在Skype(我認爲)等產品中得到了有效使用,但在現階段它仍然是一種黑色藝術。

對於一箇中心的方法,考慮XMPP,其中ejabberd是一個非常流行的實現。還有其他各種消息傳遞協議,例如新興的AMPQ標準。

這些技術可能比自行生成的基於套接字的協議更健壯和可擴展。

0

STUN和TURN是實現這一目標的常用方法,因爲已經發布並且是基於標準的方法。但是,我最近看到了一個非常有趣的方法來使用icmp消息來完成此操作。 It's called pwnat, and available here

0

因爲兩者都在不同的專用網絡中,所以兩個對等端都不能相互通信。 您需要有一個公用服務器,以便您可以通過該服務器建立連接。 參考往復,Resiprocate的細節