我正在尝试使用twisted来创建一个计算机集群,在一个更大的数据集上运行一个程序.
我的"服务器"从客户端接收一大块数据并在其上运行命令x.
我的"客户端"连接到多个服务器,为每个服务器提供一大块数据,并告诉他们运行命令x的参数.
我的问题是:有没有办法设置reactor循环连接到许多服务器:
reactor.connectTCP('localhost', PORT, BlastFactory())
reactor.run()
Run Code Online (Sandbox Code Playgroud)
或者我必须在我的范例中交换客户端和服务器?
只需connectTCP多次通话.
当然,诀窍是reactor.run()阻止"永远"(程序的整个运行时间),所以你不想多次调用它.
你有几个选择; 您可以设置定时呼叫以进行未来连接,也可以从连接上的事件(如connectionLost或clientConnectionFailed)开始新连接.
或者,最简单的是,您可以在reactor.run()开始整个节目之前设置多个连接尝试,如下所示:
for host in hosts:
reactor.connectTCP(host, PORT, BlastFactory())
reactor.run()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2449 次 |
| 最近记录: |