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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么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的建议,但它给出了相同的结果。问题如何解决?

答案

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

以上是关于为什么self.transport.write()写入同一行,即使我在每次调用后引入睡眠后调用它两次?的主要内容,如果未能解决你的问题,请参考以下文章

Python 中 Twisted TCP 客户端的 self.transport.write() 问题

扭曲的transport.write

我如何以python不将数据解释为unicode的方式编写它?

什么是HashMap?你为什么用到它?

什么是密钥哈希?为什么需要它?它是唯一的吗?为什么 Facebook 集成需要它

Redis 为什么面试都问我却不懂?因为它快吗?它为什么快?