我想使用Twisted重建现有应用程序的通信部分。此应用程序确实将数据从客户端发送到服务器,只有这样,服务器才会发送任何内容。从Twisted客户端发送到Twisted服务器,只有这一种方式
我该如何使用Twisted的事件驱动概念来实现?我目前使用connectionMade
方法Protocol
,但我不认为这是正确的方法。
class Send(Protocol):
def connectionMade(self):
while True:
data = queue.get()
self.transport.write(data + "\n")
self.transport.doWrite()
我敢肯定,这是不做到这一点的方式。 ;-)
加法: 我的问题是,我不能想象什么事件用于此。我认为connectionMade
事件并不是正确的,但我决不会在connectionLost
以外的任何其他事件,因为服务器不会向客户端发送任何内容。我应该改变这种行为吗?
http://stackoverflow.com/questions/1538617/http-download-very-big-file/1657324# 1657324谈论在扭曲代码循环的危险,并且还涵盖生产者/消费者,这也可能有助于提问者。 – 2010-09-16 21:51:38
是的,在Twisted事件中不使用循环也不阻止调用听起来很合理,这会使事件驱动的框架变得毫无意义。 – 2010-09-17 05:13:27
为什么你不应该叫'doWrite'? – Claudiu 2013-04-26 22:26:03