| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | #!/usr/bin/env python3# pg 665 of Learning Python Networkingfrom twisted.internet import reactorfrom twisted.internet.protocol import Protocol, Factoryclass MessageLogger(Protocol):    def connectionMade(self):        print('Client connection from:', self.transport.client)    def connectionLost(self, reason):        print('Client disconnected from:', self.transport.client)    def dataReceived(self, data):        self.transport.write(data)        print("Message sent by the client: ", data.decode("utf-8"))class MessageFactory(Factory):    def buildProtocol(self, addr):        print("building MessageLogger for:", addr)        return MessageLogger()    # I don't see these methods EVER being called?!    def clientConnectionFailed(self, connector, reason):        print ("Connection failed")        reactor.stop()    def clientConnectionLost(self, connector, reason):        print ("Connection lost")        reactor.stop()#this connects the protocol to a server running on port 8080 if __name__ == '__main__':    factory = Factory()    factory.protocol = MessageLogger    reactor.listenTCP(8081, factory)    # Using MessageFactory class, I can print information on "buildProtocol" call.    reactor.listenTCP(8080, MessageFactory())    reactor.run()
 |