2010-08-05 12 views
1

J'apprends juste Python et Twisted et je ne peux pas comprendre pour la vie de moi pourquoi ce serveur simple ne fonctionnera pas. Le fichier self.transport.write ne fonctionne pas lorsqu'il est appelé à partir d'une minuterie. Je n'ai aucune erreur du tout. Toute aide appréciée. Merci beaucoup!Le serveur Twisted simple n'écrira pas avec la minuterie

from twisted.internet.protocol import Factory, Protocol 
from twisted.internet import reactor 
from threading import Timer 

class proto(Protocol): 

    def saySomething(self): 
     self.transport.write('hello there\r\n') 

    def connectionMade(self): 
     Timer(5, self.saySomething).start() 

class theFactory(Factory): 

    protocol = proto 

reactor.listenTCP(8007, theFactory()) 
reactor.run() 
+0

utilisez 'callLater' avec twisted. Vous auriez à travailler dur pour laisser une socket être inscriptible en toute sécurité par plusieurs threads tordus ou non. – MattH

+0

Ouais, merci mon pote. Je l'ai découvert moi-même après avoir lu plus de la documentation Twisted. C'est payant de lire le manuel :) – PythonNewb

Répondre