在多个端口上运行Reactor.run

时间:2012-06-02 22:13:55

标签: python twisted

我有以下代码。我试图让反应堆在1025 + NUM_TABLES开始的端口上运行。问题是当我在循环中调用reactor.run()时,循环冻结。当它被注释时,循环从0到9计数,但是当它被取消注释时,它只打印0。

NUM_TABLES = 10

factories = [ ]
for i in range(0, NUM_TABLES):
    print i
    factory = Factory()
    factory.protocol = Socket
    factory.clients = []
    factories.append(factory)
    reactor.listenTCP(1025+i, factory)
    #print "Blackjack server started"
    reactor.run()

能够在不同的端口上运行新工厂需要什么?为什么反应堆停在0?它以前工作过,为什么不呢?感谢。

1 个答案:

答案 0 :(得分:5)

请不要致电reactor.run(),直到您的所有听众都已创建并注册为止。这意味着你是直接从你的主要剧本发出的最后一个电话;之后的一切都是回调。

澄清一下,只需将最后一行缩进一级。