2010-07-21 71 views
2

我想干净地断开,然后停止反应堆。但是,如果我这样做:扭曲,等到连接关闭干净

controller.connection.disconnect() 
reactor.stop() 

然后我得到一个“连接失去了一个非干净的时尚”的消息。如果我在它们之间插入一个time.sleep(1),则连接会干净地关闭。我怎么才能等到连接真的关闭?

回答

4

您可以侦听来自双绞线的回调,表明连接已断开。 This blog描述了一种方法来做到这一点。

+0

当我想出它是如何做的 – Claudiu 2010-08-11 16:25:53

0

最近我一直在想同样的事情,如何以干净的方式断开我的客户端。而客户端是LineReceiver一个子类,我想:

connector.disconnect()

self.factory.close()

reactor.stop()

(其中factoryIAddress通过FactorybuildProtocol()返回),但我在一些文档居然发现是:

self.transport.loseConnection()

它干净地关闭连接。这个问题现在已经很老了,但我希望它能帮助未来的某个人:)