twisted:一个客户端,多个服务器

Aus*_*son 7 python twisted

我正在尝试使用twisted来创建一个计算机集群,在一个更大的数据集上运行一个程序.

我的"服务器"从客户端接收一大块数据并在其上运行命令x.

我的"客户端"连接到多个服务器,为每个服务器提供一大块数据,并告诉他们运行命令x的参数.

我的问题是:有没有办法设置reactor循环连接到许多服务器:

reactor.connectTCP('localhost', PORT, BlastFactory())
reactor.run()
Run Code Online (Sandbox Code Playgroud)

或者我必须在我的范例中交换客户端和服务器?

Gly*_*yph 8

只需connectTCP多次通话.

当然,诀窍是reactor.run()阻止"永远"(程序的整个运行时间),所以你不想多次调用.

你有几个选择; 您可以设置定时呼叫以进行未来连接,也可以从连接上的事件(如connectionLostclientConnectionFailed)开始新连接.

或者,最简单的是,您可以在reactor.run()开始整个节目之前设置多个连接尝试,如下所示:

for host in hosts:
    reactor.connectTCP(host, PORT, BlastFactory())
reactor.run()
Run Code Online (Sandbox Code Playgroud)