[Twisted-Python] How to run function from protocol class

Jp Calderone exarkun at divmod.com
Fri Aug 12 09:11:10 EDT 2005


On Fri, 12 Aug 2005 13:48:27 +0200, Michał Tyde <ajchos at wp.pl> wrote:
>I got the code:
>from twisted.internet.protocol import Protocol
>
>class MyClientProtocol(Protocol):
>	buffer = ''
>	def connectionMade(self):
>		self.transport.write('hello world')

                l = task.LoopingCall(self.myFunction)
                l.start(5.0)

>	def myFunction(self):
>		self.transport.write('blah')
>	def dataReceived(self, data):
>		self.buffer += data
>		if self.buffer == 'hello world':
>			self.transport.loseConnection()
>from twisted.internet.protocol import ClientFactory
>
>class MyFactory(ClientFactory):
>	protocol = MyClientProtocol
>	def startedConnecting(self, connector):
>		pass # we could connector.stopConnecting()
>	def clientConnectionLost(self, connector, reason):
>		connector.connect() # reconnect
>	def clientConnectionFailed(self, connector, reason):
>		print "connection failed"
>		reactor.stop()
>
>from twisted.internet import reactor, task
>
>
>reactor.connectTCP('localhost', 7771, MyFactory(), timeout=30)
>reactor.run()
>

Jp




More information about the Twisted-Python mailing list