此示例的Python网络替代方案是什么?

时间:2011-12-31 08:10:12

标签: python networking

我的环境中有多达10个工作站和一台服务器都位于同一个物理位置。他们将运行一些需要相互通信的专有Python脚本:

    服务器上的
  • 服务器脚本,工作站上有客户端脚本;
  • 工作站上的服务器脚本,其他工作站上有客户端脚本;
  • 工作站上的服务器脚本,同一工作站上有客户端脚本。

总而言之,就实际的沟通而言,其性质更多地是针对非正式的动态而非固定的客户/服务器关系。

数据本身将有几种不同的类型,按带宽需求排序:

  • 实时数据传输(如果需要,可以降低频率),没有高质量传输的实际需求;
  • 100%实时且对传输完整性要求很高;
  • 消息,每分钟一次左右的频率。

传输的数据单元都很小,最多以千字节为单位。

由于这是我第一次使用Python的网络功能,有什么不同的方法呢?我自己做了一些研究但是我对Python世界中过多的网络/消息包感到吃惊,所以我想我宁愿向社区寻求一些指导。

请列出每种替代方案的利弊。如果我对'愿望清单'进行排名,那就是这样的:

  • 必须提供高数据完整性模式和低数据完整性模式;
  • 易于部署/开发/维护;
  • 高性能但不是太低级别;
  • 资源足迹小;
  • 适用于Qt / PySide;
  • 平台独立。

1 个答案:

答案 0 :(得分:2)

我会研究RabbitMQ(www.rabbitmq.com)。这将允许您将服务器设置为RabbitMQ消息服务器,并使用消息队列协议在服务器和工作站之间进行通信。这里最大的优点是你根本不必担心网络问题。

否则,我知道Twisted是一个流行的网络Python库(http://twistedmatrix.com/trac/)。