我需要制作一个可以处理流数据的多个持久连接的“服务器”

时间:2012-02-11 23:22:46

标签: python asyncsocket

我需要同时从多个Android手机中实时读取和绘制数据。我正在尝试构建一个服务器(在python中),每个手机可以同时连接,它将使用matplotlib从每个手机接收数据流并实时绘图。我在套接字编程方面不是很有经验,虽然我知道基础知识(单个请求服务器等)。我该怎么做呢?我查看了asyncore,SocketServer和其他模块,但我不确定如何允许多个长期连接。

我在想我应该为每部手机创建一个新线程(虽然我不确定将套接字传递给新线程是否安全),但我也希望能够使用子图进行绘图(例如,4虽然并不是那么重要,但是并存。)

我只需要一个正确的方向。小代码样本受到赞赏以说明这一概念。

1 个答案:

答案 0 :(得分:1)

由于Python的线程实现而使用线程可能会导致性能下降,具体取决于线程的作用。

我建议使用框架来构建异步服务器。一个这样的框架是Gevent。使用异步事件循环可以进行计算,而其他“线程”(如果是gevent,greenlets)正在等待I / O,从而获得更好的性能。该模型也是长期空闲连接的理想选择。