Good day, everyone: Continuing my effort to learn Python and Twisted, I need to create several Telnet clients and somehow send two arguments to each and receive data from each.
I tried the same pattern that I used with the Telnet server and created a Factory, actually a ReconnectingClientFactory. It doesn't work. My source and the error (no attribute 'factory') are below. Do the "conch" protocols not support a factory? Is there an alternative that provides a Telnet client with a lineReceived method? What am I doing wrong? :-) I suppose I could pass arguments to ClusterClient by overriding __init__, but that seems inelegant. Thanks for your help. Mark ---------- from twisted.internet.protocol import Protocol, ReconnectingClientFactory from sys import stdout from twisted.internet import reactor from twisted.conch.telnet import StatefulTelnetProtocol class ClusterClient(StatefulTelnetProtocol): def lineReceived(self, data): print self.factory.prompt, self.factory.call print data class ClusterClientFactory(ReconnectingClientFactory): protocol = ClusterClient def __init__(self): self.prompt = "call:" self.call = "kd4d" def startedConnecting(self, connector): print 'Started to connect.' def buildProtocol(self, addr): print 'Connected.' self.resetDelay() return ClusterClient() def clientConnectionLost(self, connector, reason): print 'Lost connection. Reason:', reason ReconnectingClientFactory.clientConnectionLost(self, connector, reason) def clientConnectionFailed(self, connector, reason): print 'Connection failed. Reason:', reason ReconnectingClientFactory.clientConnectionFailed(self, connector, reason) if __name__ == '__main__': factory = ClusterClientFactory() factory.maxDelay = 120 # two minutes print factory.prompt, factory.call reactor.connectTCP("localhost", 8023, factory) reactor.run() ----------------- File "ClusterClient.py", line 11, in lineReceived print self.factory.prompt, self.factory.call exceptions.AttributeError: ClusterClient instance has no attribute 'factory' Lost connection. Reason: [Failure instance: Traceback (failure with no frames): <type 'exceptions.AttributeError'>: ClusterClient instance has no attribute 'fa ctory' ]
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python