我有一个使用twisted
制作的简单代理服务器destination = portforward.ProxyFactory(dest_host, dest_port)
reactor.listenTCP(listen_port, destination)
reactor.run()
我想在某些条件下更改dest_port而无需重新启动服务器。
我试过了:
new_dest = portforward.ProxyFactory(dest_host, new_dest_port)
reactor.listenTCP(listen_port, new_dest)
当然这会产生一个已经在使用中的地址异常。
这可以在操作期间更改代理目的地吗?
答案 0 :(得分:1)
reactor.listenTCP返回一个提供IListeningPort的对象,该对象具有stopListening
方法,可以停止该端口上的服务器(请注意,它返回Deferred且服务器不是'实际上停止了直到Deferred
开火。
您可以在第二次stopListening
调用之前使用此listenTCP
方法释放服务器端口以供新的重新配置服务器使用。