0

我正在使用 Python 2.7 套接字来接收数据:

data = self.socket.recv(4096)

我如何从数据中检索第一个无符号短线?数据如下所示:

>>> print repr(data) 
'\x00\x053B2D4C24\x00\x00\x01\x00...'
4

3 回答 3

1

如果 unsigned short 你的意思是两个字节,只需执行以下操作:

data[:2]

如果您知道并期望解析一定大小的数据,则可以使用该struct库。

于 2011-03-27T21:44:05.647 回答
0

这就是我想出的:

s = struct.Struct('H')
num = int('0x' + ''.join(x for x in repr(packet[:s.size]) if x.isdigit()), 0)
于 2011-03-27T22:56:32.687 回答
0

老问题,但我想我还是会发布一个更好的解决方案:

value, = struct.unpack('H', data[:2])

请注意,用法以正确解压缩返回的 1 元组。

于 2011-12-10T06:47:25.687 回答