1

私は次のコードを持っています。1025+NUM_TABLESから始まるポートでreactorを実行させようとしています。問題は、ループで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()すべてのリスナーが作成および登録されるまで、電話をかけないでください。これは、メインスクリプトから直接行う最後の呼び出しであることを意味します。その後のすべてはコールバックです。

明確にするために、最後の行のインデントを1レベル外します。

于 2012-06-02T22:17:46.837 に答える