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