现在的位置: 首页 > 综合 > 正文

python在twisted中实现二进制数据

2013年09月17日 ⁄ 综合 ⁄ 共 435字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.