2010-04-10 45 views
2

我正在尝试实现点对点通信..我使用套接字进行通信。我想知道当两个对等体位于两个专用网络(他们不知道对方的公有IP地址)时我是否可以使用相同的通信方式。我可以想象在众所周知的位置共享缓冲区一种沟通方式。但是有没有其他办法可以完成这件事?跨两个专用网络的网络通信

回答

1

您可能还需要考虑两个对等方甚至没有公共IP地址的情况,在这种情况下,您可以使用STUN技术来避免需要中央服务器。 STUN在Skype(我认为)等产品中得到了有效使用,但在现阶段它仍然是一种黑色艺术。

对于一个中心的方法,考虑XMPP,其中ejabberd是一个非常流行的实现。还有其他各种消息传递协议,例如新兴的AMPQ标准。

这些技术可能比自行生成的基于套接字的协议更健壮和可扩展。

0

STUN和TURN是实现这一目标的常用方法,因为已经发布并且是基于标准的方法。但是,我最近看到了一个非常有趣的方法来使用icmp消息来完成此操作。 It's called pwnat, and available here

0

因为两者都在不同的专用网络中,所以两个对等端都不能相互通信。 您需要有一个公用服务器,以便您可以通过该服务器建立连接。 参考往复,Resiprocate的细节