Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python twisted—为什么TCP4ServerEndpoint';s回拨和回拨从不开火?_Python_Twisted - Fatal编程技术网

Python twisted—为什么TCP4ServerEndpoint';s回拨和回拨从不开火?

Python twisted—为什么TCP4ServerEndpoint';s回拨和回拨从不开火?,python,twisted,Python,Twisted,无论我们是否成功侦听,都不会调用回调。这是怎么回事 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

无论我们是否成功侦听,都不会调用回调。这是怎么回事

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 = 6000
endpoint = TCP4ServerEndpoint(reactor, port)
d = endpoint.listen(MyFactory())
d.addCallback(server_started, port)
d.addErrback(server_failed, port)
reactor.run()

回调和errback都不可调用,正如您所定义的那样

如果连接尝试成功,将执行与服务器启动(ListingPortObject,port)等效的操作。这将失败,并出现
TypeError
,因为
server\u started
被定义为接受三个参数(令人困惑的是,其中一个参数名为
self
,这表明这实际上应该是类的方法,而不是自由函数)

如果连接尝试失败,将执行与服务器失败(原因、端口)等效的操作。这也会引发
TypeError
,因为
server\u失败
也需要三个参数,而不是两个

任何一种结果都会在
d
中留下一个未处理的
TypeError
等待另一个errback来处理它