【问题标题】:in Twisted, wait until connection closed cleanly在 Twisted 中,等待连接完全关闭
【发布时间】:2010-07-21 22:20:58
【问题描述】:

我想彻底断开连接,然后停止反应器。但是,如果我这样做:

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

然后我收到“连接以非干净方式丢失”的消息。如果我在它们之间插入一个time.sleep(1),连接就会干净地关闭。我怎样才能等到连接真正关闭?

【问题讨论】:

    标签: python twisted


    【解决方案1】:

    您可以监听来自 twisted 的回调,这表明连接已断开。 This blog 描述了执行此操作的方法。

    【讨论】:

    • 是的,一旦我弄清楚它是如何做的,它就很好用
    【解决方案2】:

    我最近一直在想同样的事情,如何以干净的方式断开我的客户端。虽然客户端是LineReceiver 的子类,但我尝试过:

    connector.disconnect()

    self.factory.close()(其中factory 是由FactorybuildProtocol() 返回的IAddress

    reactor.stop()

    但我在一些文档中实际发现的是:

    self.transport.loseConnection()

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-18
      • 2021-09-07
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多