实现不使用原有的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])