我正在尝试在我的项目中实施P2P,但由于误解了这个P2P,我遇到了一个问题。
以下是我如何实施它:
客户端打开程序,并将要连接的服务器发送给服务器,服务器将客户端添加到等待列表中。
当有超过两个人连接到服务器时,服务器会向他们发送他们应该连接的地址,并将其从列表中删除。
现在,问题出现了:
如何在一个文件中创建服务器和客户端?我应该创建两个线程 - 一个用于客户端,一个用于服务器?
如上所述创建p2p服务器是个好主意吗?
我没有在互联网上找到任何用python编写的例子。
答案 0 :(得分:7)
我不确定P2P系统是否是项目要求所必需的,但是......
P2P系统没有单独的客户端和服务器应用程序,而是有一个应用程序同时充当客户端和服务器。从某种意义上说,应用程序充当客户端,因为它接触到服务器并且它充当服务器,因为它接受来自客户端的查询/命令。
http://cs.berry.edu/~nhamid/p2p/framework-python.html展示了如何在Python中构建一个简单的p2p。此示例创建一个循环来接受进入的连接(其他对等方)并生成一个线程来处理传入连接。它还具有将消息发送回已记录的对等体的结构。
一个大问题是同伴如何定位其他同伴,这通常是通过第三方来处理的,例如专用的"协调" /" bootstrap"可以将对等体指向至少另一个对等体的服务器(从那里可以向更多对等体请求该对等体)。考虑到您已经知道对等体将用于连接到另一个对等体的地址,您的项目可能不需要这样做。
引用上面的网站,您将创建一个处理函数并将其放在self.handlers中。由于该函数将传递传入的对等方信息,您可以使应用程序发回您希望的数据(要连接的地址)