Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Twisted producer为多个客户端提供缓冲区_Python_Twisted - Fatal编程技术网

Python Twisted producer为多个客户端提供缓冲区

Python Twisted producer为多个客户端提供缓冲区,python,twisted,Python,Twisted,我正在使用twisted将一些信息分发给几个客户 我有一个消费者(实现IConsumer),其write方法被覆盖以写入所有连接的消费者客户端 我有一个实现为生成器的数据源 这是我的主要功能 factory = TelemetryFactory() one2many = ConsumerToManyClientConsumers() # writes from the datalines generator to one2many telem = TelemetryProducer(one2ma

我正在使用twisted将一些信息分发给几个客户

我有一个消费者(实现
IConsumer
),其
write
方法被覆盖以写入所有连接的消费者客户端

我有一个实现为生成器的数据源

这是我的主要功能

factory = TelemetryFactory()
one2many = ConsumerToManyClientConsumers()
# writes from the datalines generator to one2many
telem = TelemetryProducer(one2many, datalines)
factory.setSource(one2many)
reactor.listenTCP(1234, factory)
reactor.run()
如何运行生成器(或遥测生成器),以便无论有多少个客户端(0-10个),它始终运行


编辑:使用reactor.callInThread(fn)似乎给出了所需的行为,只是CTRL+C不能正确退出程序。CTRL+C后,所有连接都被拒绝,但控制权不会退回到外壳。

尝试。

什么生成器?什么
fn
?请看发电机是什么发电机。它从某些来源生成数据。该函数运行生成器并将数据写入one2many使用者,而后者又将数据写入连接的客户端。不过,代码与这个问题并不真正相关,可能包括它是一个错误。