一个典型的Twisted应用程序框架

    技术2022-05-11  54

    一个典型的Twisted应用程序框架

    一、简介

    本文通过继承Twisted中的一些类实现了一个基本的Twisted应用程序,期间实现了协议、工厂并进行了服务器的监听,并将日志输出的屏幕。

    二、基本框架

    ·导入部分

    这部分导入的内容是专供协议和工厂类使用的,其他部分的导入可能并不在同一模块当中,所以到了具体的代码部分再去导入。

    from twisted.internet import protocol

    from twisted.protocols import basic

    ·协议

    继承了一个LineReceiver,实现了行和原始两种方式的数据接收处理,还重载了连接的建立和断开事件。

    class ConfigServer(basic.LineReceiver):

        def __init__(self):

            pass  #by gashero

        def dataReceived(self,data):

            pass

        def lineReceived(self,line):

            pass

        def connectionMade(self):

            pass

        def connectionLost(self,reason):

            pass

    ·工厂

    继承了一个服务器工厂,

    class ConfigServerFactory(protocol.ServerFactory):

        protocol=ConfigServer

        def __init__(self):

            pass

        def startFactory(self):

            pass

        def stopFactory(self):

            pass

        def buildProtocol(self,addr):

            protocol.ServerFactory.buildProtocol(self,addr)

            pass

    ·设置日志

    from twisted.python import log

    import sys

    log.startLogging(sys.stdout)

    ·启动服务器

    from twisted.internet import reactor

    reactor.listenTCP(8080,ConfigServerFactory(),timeout=10)

    reactor.run()

    三、其他常用方法

    ·发送数据,在协议对象的方法中

    self.transport.write(data)

    ·关闭连接

    self.transport.loseConnection()

    ·获取连接信息

    self.transport.getPeer()

    self.transport.getHost()

     

    最新回复(0)