【问题标题】:Preferred python networking framework/library for desktop app用于桌面应用程序的首选 python 网络框架/库
【发布时间】:2012-06-08 10:28:15
【问题描述】:

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

但我不知道该选哪一个。

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

【问题讨论】:

  • 是什么让你觉得 Twisted 很“大”?它比 Python 小。另外,在这种情况下,为什么图书馆“大”会成为问题?台式机通常具有大量的持久存储。

标签: twisted tornado gevent


【解决方案1】:

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

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

【讨论】:

  • 谢谢!我将尝试使用原始套接字 Twisted 来完成我的应用程序
【解决方案2】:

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

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

【讨论】:

  • Twisted 与协程兼容(我怀疑 gevent 与其他非协程方法兼容)。相反,差异主要在于可用的工具和可靠性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-18
  • 2010-09-14
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多