from __future__ import print_function from twisted.internet.protocol import Protocol, ClientFactory import sys class WelcomeMessage(Protocol): def dataReceived(self, data): sys.stdout.write(data) def connectionMade(self): self.transport.write('Hello server, I am the client!\n') class WelcomeMessageFactory(ClientFactory): def startedConnecting(self, connector): print('Started to connect.') def buildProtocol(self, addr): print('Connected.') return WelcomeMessage() def clientConnectionLost(self, connector, reason): print('Lost connection. Reason:', reason) def clientConnectionFailed(self, connector, reason): print('Connection failed. Reason:', reason) from twisted.internet import reactor d = reactor.connectTCP("localhost", 8007, WelcomeMessageFactory()) reactor.run()