用于分离流中单个消息的实用程序库
datachunkp的Python项目详细描述
datachunk是一个有用的库,用于在发送消息的流中处理消息。 如下图所示的流: <;msg size>;<;msg bytes>;<;msg size>;<;msg bytes>;<;msg size>;… msg size是一个4字节整数(小尾数) 每当读取完整消息时,datachunk调用处理程序的handle_msg方法。
信息可能是碎片。有时一个数据包中可能会有许多消息。 我们需要做的就是调用datachunk的process\u chunk方法,datachunk对象将负责 在需要时重新组合消息。
基本示例
from__future__importprint_functionfromstructimportpackimportrandomfromdatachunkpy.datachunkimportDataChunk,MessageHandler# A message handler classclassMyMsgHandler(MessageHandler):def__init__(self):self.msg_processed=0self.bytes_processed=0defhandle_msg(self,data):print('I am handling',data)self.msg_processed+=1self.bytes_processed+=len(data)datach=DataChunk(MyMsgHandler())i=0random.seed()mydata=b''total_bytes=0whilei<10000:i+=1j=random.randint(1,50)mydata+=pack('i',j)mydata+=b'a'*jtotal_bytes+=jdatach.process_chunk(mydata)