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() #獲取本機信息app