twisted的LineReceiver的接口定义

class LineReceiver(protocol.Protocol,_PauseableMixin):
    line_mode=1
    __buffer=''
    delimiter="\r\n"
    MAX_LENGTH=16384 #一行的最大长度,字节
    def clearLineBuffer(self):    #清空缓冲区
    def dataReceived(self,data):  #继承父类的方法,用于分发事件,不要重载
    def setLineMode(self,extra=""): #设置工作状态为行模式
    def setRawMode(self):           #设置工作状态为原始数据模式
    def rawDataReceived(self,data): #原始数据接收事件,可重载
    def lineReceived(self,line):    #行数据接收事件,可重载
    def sendLine(self,line):        #以行模式发送数据
    def lineLengthExceeded(self,line): #当接收到的一行长度超过了最大值时的错误响应,并断开连接
可以看到LineReceiver类提供的功能已经相当的完善了,可以手动设置工作状态并提供了完善的事件响应方法。如果要发送原始数据,可以使用如下方法:
self.transport.write(data)
至于self.transport对象,这个是所有的协议对象都有的成员,可以看出是从BaseProtocol就已经存在的。 self.transport对象一般使用twisted.internet.protocol.FileWrapper类实现,其主要接口是与文件对象 相同的。FileWrapper另外提供的方法包括生产者/消费者的支持,还有就是连接控制。
self.transport.loseConnection() #关闭连接
self.transport.getPeer()        #获取对方信息
self.transport.getHost()        #获取本机信息

你可能感兴趣的:(twisted的LineReceiver的接口定义)