Python 3缓冲区/字节操作

时间:2014-05-13 07:51:10

标签: python python-3.x byte

我必须编写与服务器通信的代码:

服务器会发给我一个指针。但是由于socket.recv()的性质,这个指针是一种奇怪的类型,我真的不知道怎么玩它。我想要的是能够从返回的指针添加或减去任意地址并将其发回。由于指针的性质,字节必须完全正确。

对于过去的项目,我已经使用了字节(字符串,' utf-8')但是真的搞砸了处理这些数据。我花了很长时间才弄清楚编码是问题,而不是我的输入:<

有更好的方法吗?

问题得到了解答,但似乎不清楚问题是什么。所以我现在就澄清一下,这样可能对其他人有所帮助:

问题是如何从收到的缓冲区(在这种情况下是一个指针)中取代或添加并再次将其转换回缓冲区。 (而且我真的很愚蠢而不考虑结构,因为我已经在我的代码中依赖它了。)

1 个答案:

答案 0 :(得分:0)

如果你想将bytes()解析为可以用算术做的算法,你可以做

import struct
a=b'\xca\xfe\xba\xbe' # let's say I just received these bytes
struct.unpack(">I", a)
# -> (3405691582,)
struct.unpack(">I", a)[0]
# -> 3405691582
hex(struct.unpack(">I", a)[0])
# -> '0xcafebabe' - exactly what I expected.

要了解其他方式以及如何将其应用于网络通讯,我将留给您作为练习。