2011-01-19 90 views
0

我只是想知道两个应用程序如何在互联网上互相交互。如何向其他人发送消息,因为当IP不固定时。请给我一些编码提示,通过这些提示,当IP未知时,p2p应用程序会通过互联网连接另一个应用程序。关于p2p连接和c#

请帮我详细。

+0

你是怎么意思互动的?你说“发送一些消息给其他人,因为当IP不固定”,但是什么样的消息,为什么?你有尝试过什么吗?帮助我们帮助您! – 2011-01-19 13:59:52

回答

1

通常情况下,这种情况将发生在某个已知位置的服务器上的某种目录中。

1

正如Spender指出的,如果不使用服务器作为中介,则无法做到这一点。如果你不知道他们的地址,你希望能够拜访一位朋友吗?

换句话说,每两个机器打算建立P2P连接如会接触的已知服务器交换连接信息。之后,他们理论上可以相互交流。

但是,很可能他们是使用NAT路由器的后面,因此没有路由器或诉诸某种技术来解决NAT对任一打开端口无法接收传入的数据包。

2

的方式,对等通道netPeerTcpBinding在WCF的工作原理是,它使用对等名称解析协议和简单服务发现协议的组合发现对等网格上的对等体。

SSDP在本地子网上工作,发现可以直接连接的对等设备。它通过传统的网络广播技术来完成。

PNRP,在另一方面,通过使用IPv6在网络上,并在互联网上的作品。由于大多数网络还不支持IPv6,因此Teredo用于通过IPv4隧道传输此通信。

当P2P网是在全球云出版,网名发送到一个微软的公开访问/免费使用PNRP种子服务器。当新的同行上线时,他们首先要求这些种子服务器提供部分对等列表。此列表然后用于执行进一步的对等名称解析。

当一个节点是在全球云解决,它通常解析为IPv6地址。任何时候,对方的地址都会改变,这些信息会通过网格发送出去,以便其他对等方知道它。

这实质上是一种分布式哈希表:http://en.wikipedia.org/wiki/Distributed_hash_table

当你向外发送数据的网格,该数据是由对等渠道向发送机直接知道的同行路由。然后这些对等体中的每一个随后路由到他们的知名对等体,等等。直到消息已经发送给网状网络上的所有对等体。

此作品在互联网上(甚至落后于防火墙/ NAT设备)感谢的Teredo和IPv6。