1

我有以下代码。我试图让反应堆在从 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?以前有效,为什么现在无效?谢谢。

4

1 回答 1

5

reactor.run()在创建并注册所有听众之前不要打电话。这应该是您直接从主脚本中进行的最后一次调用;之后的一切都是回调。

为了澄清,只需将最后一行取消缩进一级。

于 2012-06-02T22:17:46.837 回答