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