将字节解压缩到int

时间:2016-05-17 16:00:21

标签: python

我是struct module的新手,我正在尝试这样做:

value = myClient.mySocket.recv(4)
struct.unpack("I",value)

从我的服务器获取值然后将其解压缩为整数,我正在接收该值,但它不会解压缩给我这个错误:

struct.error: unpack requires a bytes object of length 4

编辑: 好的,正如Martijn Pieters告诉我的那样,value中没有任何内容存储异常,但我的代码中还有另一部分

value = myClient.mySocket.recv(4)
struct.unpack("I",value)
if value == 2:
   #do smth

我在调试器中看到value已收到b'\x02\x00\x00\x00'但是unpack没有将其更改为int所以if语句不会执行,而在另一个循环中迭代服务器发送没有,有例外。如何将此字节值解压缩为整数?

EDIT2:好的我解决了它

value = myClient.mySocket.recv(4)
value = struct.unpack("I",value)
if value[0] == 2:
  #do smth

1 个答案:

答案 0 :(得分:3)

if (!string.IsNullOrEmpty(text)) myList.Add(text); 会返回结果,因此unpack(),然后是x = unpack(...)