【发布时间】:2010-11-01 02:07:43
【问题描述】:
【问题讨论】:
标签: python networking p2p jxta
【问题讨论】:
标签: python networking p2p jxta
Twisted 几乎可以解决 Python 中任何与网络相关的问题,但您确实必须接受 Twisted 的做事方式。它本质上不是 P2P 堆栈,而是事件循环、回调系统和网络框架。
Divmod Vertex 目前没有得到维护,几年前我尝试使用它时仍然很粗糙。
CSpace 可能与您正在寻找的最接近:“一个用于通过 Internet 进行安全、分散、用户对用户通信的平台。”它将 P2P 和 NAT 遍历抽象出来,因此您的应用可以正常运行,而不是“P2P 应用”。
同样,几年前澳大利亚有一个名为“The Circle”的旧 P2P 系统,完全用 Python 编写,具有安全的 P2P 消息传递、聊天、文件共享和其他功能。 0.41c 是最后一个版本:http://savannah.nongnu.org/projects/circle/
也来自我的书签:
http://entangled.sourceforge.net/ 是 Entangled,“基于 Kademlia 的分布式哈希表 (DHT),以及对等的元组空间实现。”
http://khashmir.sourceforge.net/ 是一个 Python 分布式哈希表,值得注意的是它使用 Airhook 协议进行联网,该协议具有很强的容错性(设计用于例如蜂窝网络)。
http://kenosis.sourceforge.net/ 是一个 Python P2P RPC 系统。
【讨论】:
我能想到的最佳选择当然是使用twisted。
Old version of BitTorrent 是用它构建的。该链接指向使用扭曲的最后一个已知版本。您可以将其作为起点进行研究。
还有Vertex。这是一个使用twisted并允许p2p绕过防火墙的库。
【讨论】:
自从提出这个问题并随后得到了回答,ZeroMQ 出现了,我真的很喜欢它。 Python 模块称为 pyzmq。它使构建 TCP 套接字的过程变得不那么笨重,尤其是在处理请求>响应以外的消息模式时,尽管它也这样做。它非常适合基本服务器、p2p 应用程序、消息传递、分布式处理,应有尽有。
【讨论】:
我不知道这样的事情是否存在,但我可以提供以下替代方案:
【讨论】:
我引用 the Sun JXTA pages 的日期,日期为 2002 年 12 月,
“JXTA 项目有一个 Java 参考实现,可从 download.jxta.org 获得,目前正在努力添加其他常用语言的参考实现,包括 C、Objective C、Perl、Ruby 和 Python。虽然 Java 实现是作为 JXTA 协议最完整的实现,C 实现(适用于 Win32 和 Linux)正在快速接近相同的完整性水平。”
【讨论】:
您好(来自 JXTA for Java 2.6 和 2.7 最后两个版本的领导者),
在 Python 中没有已知的 JXTA 实现。
如果有人想解决这个问题,首先应该了解 JXTA 2.0 协议。可在 Scribd 在线阅读的实用 JXTA II 书籍应该有助于理解该技术。
加油!
【讨论】:
Stackless Python 您可能会感兴趣。
【讨论】: