【发布时间】:2023-03-03 23:35:01
【问题描述】:
我正在尝试在我的项目中实现 P2P,但由于对 P2P 的误解而遇到了问题。
这是我的实现方式:
客户端打开程序,向服务器发送他要连接的程序,服务器将客户端加入等待列表。
当有两个以上的人连接到服务器时,服务器会向他们发送他们应该连接的地址,并将他们从列表中删除。
那么问题来了:
如何在一个文件中创建服务器和客户端?我应该创建两个线程 - 一个用于客户端,一个用于服务器吗?
如上所述创建 p2p 服务器是个好主意吗?
我没有在互联网上找到任何用 python 编写的示例。
【问题讨论】:
-
客户端-服务器听起来与点对点冲突。无论如何,您需要广播同伴下落的“东西”。我建议为“某事”创建一个程序,该程序最有可能是具有发现主题的发布者-订阅者。然后是实际 p2p 进程的另一个程序。 p2p最有可能需要gevent、twisted、tornado等线程或并发库。让p2p实例订阅发现主题,并找到其他对等方。从那里两个同行握手,建立连接,做生意。
-
目前,一些项目似乎只在 Python 中提供 P2P 库: Stalled: github.com/p2p-today/p2p-project Stalled: github.com/ethereum/pydevp2p Stalled: github.com/StorjOld/pyp2p Incomplete and WIP: github.com/libp2p/py-libp2p 所以我们可以看到有没有那么多选择。
标签: python python-2.7 implementation p2p