更改扭曲代理的重定向端口

时间:2014-01-19 18:29:41

标签: python proxy twisted

我有一个使用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)

当然这会产生一个已经在使用中的地址异常。

这可以在操作期间更改代理目的地吗?

1 个答案:

答案 0 :(得分:1)

reactor.listenTCP返回一个提供IListeningPort的对象,该对象具有stopListening方法,可以停止该端口上的服务器(请注意,它返回Deferred且服务器不是'实际上停止了直到Deferred开火。

您可以在第二次stopListening调用之前使用此listenTCP方法释放服务器端口以供新的重新配置服务器使用。