2010-07-21 111 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()

它乾淨地關閉連接。這個問題現在已經很老了,但我希望它能幫助未來的某個人:)