+-
为什么self.transport.write()写入同一行,即使我在每次调用后引入睡眠后调用它两次?

我试图使用Twisted协议以每1秒的间隔写入客户端,但是当我使用client.transport.write()两次时,它会在同一行上打印两个数据。我想要做的是将第一个数据发送到客户端然后在某个延迟后发送第二个数据。方法如下:client.transport.write(list_of_commands [0])time.sleep(10)client.transport.write(list_of_commands [1])我也尝试用client.transport.getHandle替换client.transport.write()( ).sendall()根据Twisted transport.write的建议,但它给出了相同的结果。问题如何解决?

0
投票

Twisted是由主反应器循环运行的异步单线程,这意味着如果你在代码中进行休眠,那么反应堆在你睡眠一段时间后就不会完成它的工作了。你可以使用reactor.callLater(interval, self.transport.write, data)