我是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
答案 0 :(得分:3)
if (!string.IsNullOrEmpty(text)) myList.Add(text);
会返回结果,因此unpack()
,然后是x = unpack(...)
。