0

我想用python写一个p2p分享软件,主要用在windows下,也可以用在linux下。所以我尝试了一些框架/库,例如 Twisted、Gevent 和 Tornado(可能是 tornado 对 Windows 桌面客户端来说不是一个好的)。

但我不知道该选择哪一个。

Twisted 有点大,我觉得……我认为 Gevent 在 *nix 平台上更有用。Tornado 是一个网络服务器,所以可能这个不适合桌面应用程序。

4

2 回答 2

1

Twisted 是其中最适合开发网络应用程序的。它包含实现协议的最多支持代码。Twisted 还包括其中最好的 GUI 库集成。它适用于 Gtk(也适用于 Windows)和 Qt3 和 Qt4。它也可以与 wxWidgets 一起使用(尽管它的支持不如 Gtk 或 Qt3/4 好)。它也可以与 Windows GUI 事件循环集成。

当然,鉴于对您的需求的描述极少(几乎不存在),建议 Twisted 是最适合您需求的库是荒谬的。我认为与您列出的其他选项(实际上,Python 中可用的任何其他选项)相比,Twisted 很可能至少同样适合(如果不是更适合)任意网络应用程序的需求。但是,我不能说它是否最适合您的特定情况。

于 2012-06-08T13:07:46.213 回答
0

我认为 Windows 中所有这些的底层事件循环的默认值将基于 Select(尽管看起来至少 Twisted 对 IOCP 具有特定于平台的支持)。

对上述差异有更好理解的人可能应该发表评论,但从开发人员的角度来看,选择主要围绕首选语法。Twisted 通过反应器模式实现一切,而 gevent 使用协同程序。我会看一些简单的例子,看看哪个更适合你的感受。

于 2012-06-08T21:33:12.497 回答