处理来自Python套接字recv的数据

时间:2011-03-27 21:36:28

标签: python sockets recv

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

data = self.socket.recv(4096)

如何从数据中检索第一个未签名的短信?数据如下所示:

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

3 个答案:

答案 0 :(得分:1)

如果用unsigned short表示两个字节,只需执行:

data[:2]

如果您知道并希望解析一定数量的数据,可以使用struct库。

答案 1 :(得分:0)

这就是我提出的:

s = struct.Struct('H')
num = int('0x' + ''.join(x for x in repr(packet[:s.size]) if x.isdigit()), 0)

答案 2 :(得分:0)

老问题,但我认为无论如何我会发布一个更好的解决方案:

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

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