php 解包二进制,Python从tcp解包二进制流

好吧。我想我已经把它解码了,虽然我不确定中间的16位值。在

这段python2.7代码。。。在from cStringIO import StringIO

import struct

import time

def decode(f):

def read_le16(f):

return struct.unpack('

def read_timestamp(f):

ts = struct.unpack('

return time.ctime(ts)

def read_byte(f):

return ord(f.read(1))

def read_pascal(f):

l = ord(f.read(1))

return f.read(l)

result = []

# Read total length

result.append('Total message length is %d bytes' % read_le16(f))

# Read timestamp

result.append(read_timestamp(f))

# Read 3 x byte

result.append(read_byte(f))

result.append(read_byte(f))

result.append(read_byte(f))

# Read 1 x LE16

result.append(read_le16(f))

# Read 3 x pascal string

result.append(read_pascal(f))

result.append(read_pascal(f))

result.append(read_pascal(f))

return result

s = 'L\x00k\x07vQ\n\x01\xffh\x00\x04NGIN\x04MAIN6Product XX finished reprocessing cdc XXXXX at jesadr 0c\x00k\x07vQ\n\x01\xffF\x00\x06CSSPRD\x0cliab_checkerCCheckpointed to XXXXXXXXXXXXXXXX:XXXXXXX.XXX at jesadr 0 (serial 0)[\x00l\x07vQ\n\x00\xff\x01\x00\x05MLIFE\x06dayendBdayend 1 Copyright XXXX XXXXXXX XXXXXXX XXXXX XXX XXXXXX XXXXXXXX.'

f = StringIO(s)

print decode(f)

print decode(f)

print decode(f)

…产量。。。在

^{pr2}$

时间戳是5个小时,所以我假设是时区的问题。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值