我想幹淨地斷開,然後停止反應堆。但是,如果我這樣做:扭曲,等到連接關閉乾淨
controller.connection.disconnect()
reactor.stop()
然後我得到一個「連接失去了一個非乾淨的時尚」的消息。如果我在它們之間插入一個time.sleep(1)
,則連接會乾淨地關閉。我怎麼才能等到連接真的關閉?
我想幹淨地斷開,然後停止反應堆。但是,如果我這樣做:扭曲,等到連接關閉乾淨
controller.connection.disconnect()
reactor.stop()
然後我得到一個「連接失去了一個非乾淨的時尚」的消息。如果我在它們之間插入一個time.sleep(1)
,則連接會乾淨地關閉。我怎麼才能等到連接真的關閉?
您可以偵聽來自雙絞線的回調,表明連接已斷開。 This blog描述了一種方法來做到這一點。
最近我一直在想同樣的事情,如何以乾淨的方式斷開我的客戶端。而客戶端是LineReceiver
一個子類,我想:
self.factory.close()
(其中factory
是IAddress
通過Factory
的buildProtocol()
返回),但我在一些文檔居然發現是:
self.transport.loseConnection()
它乾淨地關閉連接。這個問題現在已經很老了,但我希望它能幫助未來的某個人:)
當我想出它是如何做的 – Claudiu 2010-08-11 16:25:53