[Twisted-Python] cannot get simple example to run
![](https://secure.gravatar.com/avatar/58ce38c472743b9ecd02059216887198.jpg?s=120&d=mm&r=g)
Hello everyone. Try as I might I cannot get a very simple example to run. I basically want a server that accepts connections, and periodically issues messages to all clients. The docs for twisted.word says things are in flux so I would rather avoid that and just use a LineReceiver. However right now I can't get anything to work. I start the server and it seems to be happy to sit around and accept connections. However when I run the client it quits (without saying why) and no connection is made. Any help would be very much appreciated. Here's the code, log messages below that. Thanks! Kevin ################################################## # server.py ################################################## import sys from twisted.internet.protocol import log from twisted.internet.protocol import Factory from twisted.internet.protocol import Protocol from twisted.internet import reactor class Echo(Protocol): def connectionMade(self): sys.stderr.write('Server connectionMade\n') self.factory.numProtocols = self.factory.numProtocols+1 if self.factory.numProtocols > 100: self.transport.write("Too many connections, try later") self.transport.loseConnection() def connectionLost(self, reason): sys.stderr.write('Server connectionLost\n') self.factory.numProtocols = self.factory.numProtocols-1 def dataReceived(self, data): sys.stderr.write('Server dataReceived\n') self.transport.write(data) factory = Factory() factory.protocol = Echo log.startLogging(file('server.log', 'w')) sys.stderr.write('Server starting...\n') # 8007 is the port you want to run under. Choose something >1024 reactor.listenTCP(9010, factory) reactor.run() sys.stderr.write('Server done\n') ################################################## # client.py ################################################## import sys from twisted.internet import reactor from twisted.internet.protocol import log from twisted.internet.protocol import Protocol from twisted.internet.protocol import ClientCreator from twisted.internet.protocol import ClientFactory class Greeter(Protocol): def sendMessage(self, msg): sys.stderr.write('Client sendMessage\n') self.transport.write("MESSAGE %s\n" % msg) class GreeterClientFactory(ClientFactory): def startedConnecting(self, connector): sys.stderr.write('Client startedConnecting\n') def buildProtocol(self, addr): sys.stderr.write('Client connected\n') g = Greeter() reactor.callLater(1, g.sendMessage, "This is sent in 1 second") reactor.callLater(2, g.sendMessage, "This is sent in 2 second") reactor.callLater(3, g.sendMessage, "This is sent in 3 second") return Greeter() def clientConnectionLost(self, connector, reason): sys.stderr.write('Client connectionLost: ' + reason + '\n') def clientConnectionFailed(self, connector, reason): sys.stderr.write('Client connectionFailed: ' + reason + '\n') log.startLogging(file('client.log', 'w')) sys.stderr.write('Client connecting...\n') f = GreeterClientFactory() reactor.connectTCP("localhost", 9010, f) sys.stderr.write('Client done\n') ################################################## # client.log ################################################## 2008/04/28 12:38 -0400 [-] Log opened. 2008/04/28 12:38 -0400 [-] Client connecting... 2008/04/28 12:38 -0400 [-] Starting factory <__main__.GreeterClientFactory instance at 0x8354d8c> 2008/04/28 12:38 -0400 [-] Client startedConnecting 2008/04/28 12:38 -0400 [-] Client done ################################################## # server.log ################################################## 2008/04/28 14:41 -0400 [-] Log opened. 2008/04/28 14:41 -0400 [-] Server starting... 2008/04/28 14:41 -0400 [-] twisted.internet.protocol.Factory starting on 9010 2008/04/28 14:41 -0400 [-] Starting factory <twisted.internet.protocol.Factory instance at 0xb7cc18cc>
![](https://secure.gravatar.com/avatar/3a7e70f3ef2ad1539da42afc85c8d09d.jpg?s=120&d=mm&r=g)
On Mon, Apr 28, 2008 at 3:23 PM, <klok000@gmail.com> wrote:
You're not running the reactor in the client example. -- Christopher Armstrong International Man of Twistery http://radix.twistedmatrix.com/ http://twistedmatrix.com/ http://canonical.com/
![](https://secure.gravatar.com/avatar/3a7e70f3ef2ad1539da42afc85c8d09d.jpg?s=120&d=mm&r=g)
On Mon, Apr 28, 2008 at 3:23 PM, <klok000@gmail.com> wrote:
You're not running the reactor in the client example. -- Christopher Armstrong International Man of Twistery http://radix.twistedmatrix.com/ http://twistedmatrix.com/ http://canonical.com/
participants (4)
-
Christopher Armstrong
-
glyph@divmod.com
-
Jean-Paul Calderone
-
klok000@gmail.com