为了账号安全,请及时绑定邮箱和手机立即绑定

扭曲-为什么TCP4ServerEndpoint的回调和errback永不触发?

扭曲-为什么TCP4ServerEndpoint的回调和errback永不触发?

慕的地8271018 2021-03-29 16:13:05
无论是否成功侦听,都不会调用回调。这里发生了什么?def server_started(self, data, port):    log.msg("Server listening on port %s." % (port))def server_failed(self, data, port):    log.err("Failed to listen on port %s." % (port), data)    reactor.stop()log.startLogging(sys.stdout)port = 6000endpoint = TCP4ServerEndpoint(reactor, port)d = endpoint.listen(MyFactory())d.addCallback(server_started, port)d.addErrback(server_failed, port)reactor.run()
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

定义回调和回调后,它们均不可调用。

如果连接尝试成功,server_started(listeningPortObject, port)将完成的等效操作。这将失败,TypeError因为server_started定义为接受三个参数(令人困惑的是,其中一个被命名self,这表明它实际上应该是类的方法,而不是自由函数)。

如果连接尝试失败,则将进行等效的server_failed(reason, port)操作。这也会引起问题,TypeError因为server_failed还需要三个参数,而不是两个参数。

任一种结果都将留下d未处理的状态,TypeError等待另一个错误处理。


查看完整回答
反对 回复 2021-04-02
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号