Twisted を使用して Python 2.7 でクライアントを作成しようとしています。私のコードは Linux (debian スクイーズ) では問題なく動作しますが、Windows (XP および 7) で試してみると、絶え間なくエラー メッセージが表示されます。これらのメッセージのスクリーンショットはこちらです。
私はバグを絞り込み、まだバグを含んでいるクライアントの非常に簡素化されたバージョンを書くことができました:
from twisted.internet.protocol import Protocol,ClientFactory
from twisted.protocols.basic import LineReceiver
from twisted.internet import reactor
class TheClient(LineReceiver):
def lineReceived(self,line):
print line
def connectionLost(self,reason):
reactor.stop()
class TheFactory(ClientFactory):
protocol = TheClient
class Test(object):
def doRead(self):
pass
def fileno(self):
return 0
def connectionLost(self,reason):
print 'connection lost'
def logPrefix(self):
return 'Client'
def main():
print 'starting'
test = Test()
reactor.addReader(test)
reactor.run()
if __name__ == '__main__':
main()
「reactor.addReader(test)」を含む行がコメント アウトされている場合、エラー メッセージは表示されません。行をコメントアウトせずに Linux でこのコードを実行すると、エラー メッセージは表示されません。
私はこの質問を見つけました。同じ問題ではないと思いますが、予想通り、Windowsでは正しく機能しませんでした。
このコードは正しいですか、これは Windows のバグですか、それとも Windows で動作させるには別のことをしなければなりませんか?