遇到问题的代码如下:
#!/bin/lua
local bitstring = require("bitstring")
local header_fmt = "8:bin, 8:bin, 32:int"
local set_id0 = "00000000"
local pk_id = "70403165"
local org_time = 132
local ack_pk = bitstring.pack(header_fmt, set_id0, pk_id, org_time)
print("+++++++++++++",pk_id, "time:", org_time)
local _id0, _id, _time = bitstring.unpack(header_fmt, ack_pk)
print("-------------", _id, "time:", _time)
上面这小段代码,用到了lua的拓展库bitstring, bitstring.pack用来把一些数据打包成字符串的形式,以便发送。 bitstring.unpack用于拆包,现在问题是第三项数值数据org_time (值为132)在调用bitstring.pack()打包,再调用bitstring.unpack()解包,得到的第三项数据 _time始终为0,也就是说数据在打包拆包过程中丢失了,这是怎么回事呢?而且我在别人的机子上运行就不会出现这种问题?我把head_fmt中 32:int 改为 16:int,也能拆包得到正确的数值,但一旦是32:int,不管我 org_time值为多少, 就只能得到0。 希望有朋友能够指点我一下,在这里提前说声谢谢!