无论是否成功侦听,都不会调用回调。这里发生了什么?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
等待另一个错误处理。
添加回答
举报
0/150
提交
取消