P2P通信方式

时间:2011-09-06 23:53:35

标签: sockets p2p

我一直在尝试服务器客户端应用程序编程,并希望探索P2P。我不知道从哪里开始。

我在想一个方法,(每个用户都被称为一个节点)

每个节点都由服务器和连接到其他节点服务器的不同客户端实例构成。因此,node1基本上是node2和node3的服务器和客户端,node2是node1和node3的服务器和客户端,node3是node1和node2的服务器和客户端。通过向中央服务器提交信息,节点可以相互了解。

我不确定这是一种海盗方法,因为如果节点数量增加,我认为这不会真正起作用。

我正在寻找的是资源或背后方法的基本概念,或者我是在正确的轨道上。

提前致谢。

2 个答案:

答案 0 :(得分:1)

  

每个节点都由服务器和不同的客户端实例构成   连接到其他节点的服务器。所以基本上node1是服务器和   客户端到node2和3,node2是服务器和客户端到node1和   node3和node3是node1和node2的服务器和客户端。而且   节点通过向a提交信息来了解彼此   中央服务器。

通常,人们谈论两种类型的对等体:边缘对等体(=您称之为客户端对等体)和超级对等体(=您称之为服务器对等体)。通常,超级对等体是具有额外功能的边缘对等体,以支持P2P网络的结构。

因此,您不能(也不应该)让某个对等体表现为来自某些对等体的服务器以及作为其他对象的客户端。它应该与每个人都有优势,或者与所有人一起超越。

您需要发布一组种子(即超级对等体的位置),而不是中央服务器。然后,边缘对等体获取这些种子并开始连接到一个超级对等体。 P2P网络中没有中央服务器,而是一组超级同行。

答案 1 :(得分:0)

你可能想看看ZeroMQ库和associated guide - 这里有一些有用的东西可以设计像这样的分布式系统,以及你会发现的一些相关问题。 / p>