我需要同时从多个Android手机中实时读取和绘制数据。我正在尝试构建一个服务器(在python中),每个手机可以同时连接,它将使用matplotlib从每个手机接收数据流并实时绘图。我在套接字编程方面不是很有经验,虽然我知道基础知识(单个请求服务器等)。我该怎么做呢?我查看了asyncore,SocketServer和其他模块,但我不确定如何允许多个长期连接。
我在想我应该为每部手机创建一个新线程(虽然我不确定将套接字传递给新线程是否安全),但我也希望能够使用子图进行绘图(例如,4虽然并不是那么重要,但是并存。)
我只需要一个正确的方向。小代码样本受到赞赏以说明这一概念。
答案 0 :(得分:1)
由于Python的线程实现而使用线程可能会导致性能下降,具体取决于线程的作用。
我建议使用框架来构建异步服务器。一个这样的框架是Gevent。使用异步事件循环可以进行计算,而其他“线程”(如果是gevent,greenlets)正在等待I / O,从而获得更好的性能。该模型也是长期空闲连接的理想选择。