实现不使用原有的basic.LineReceiver作为协议基类,而改用protocol.Protocol。因为原来sendline使用了的结束符。
协议定义先简单点,id + msg length + msg,
使用pack和unpack进行封装和解析,参考http://docs.python.org/library/struct.html
import struct
buffer = struct.pack("5s", 'hello', )
buffer = struct.pack("HH" , 1, len(buffer)) + buffer // H 对应unsigned short,2个字节,16位
print repr(buffer)
print struct.unpack("H", buffer[:2])[0]
print struct.unpack("H", buffer[2:4])[0]
print repr(struct.unpack("5s", buffer[4:])[0])
本文介绍了一种不依赖basic.LineReceiver的方式,通过自定义协议实现数据传输。该协议采用id+消息长度+消息体的形式,并利用Python的struct模块进行数据的打包与解包操作。
237

被折叠的 条评论
为什么被折叠?



