gpt4 book ai didi

python - 如何从 Python 中的套接字读取字节数组

转载 作者:行者123 更新时间:2023-11-28 22:52:24 25 4
gpt4 key购买 nike

我正在使用蓝牙将 16 字节的字节数组发送到 Python 服务器。基本上我想要实现的是按原样读取字节数组。我怎样才能在 Python 中做到这一点。

我现在正在做的是读取一个字符串,因为这是我知道如何从套接字读取数据的唯一方法。这是我在 python 套接字中的代码

data = client_sock.recv(1024)

其中 data 是字符串。有什么想法吗?

最佳答案

你已经完全按照你的要求做了。

data 是从套接字接收到的字节,按原样。

在 Python 3.x 中,它是一个 bytes 对象,它只是 bytearray 的不可变版本。在 Python 2.x 中,它是一个 str 对象,因为 strbytes 是同一类型。但无论哪种方式,该类型都只是一串字节。

如果你想以数字而不是字符的形式访问这些字节:在 Python 3.x 中,只需索引或迭代 bytes 即可,但在 Python 2.x 中,你必须调用ord 每个字符。这很容易。

或者,在这两个版本中,您可以只调用 data = bytearray(data),它会生成数据的可变 bytearray 副本,它会为您提供数字而不是索引或迭代时的字符。

因此,例如,假设我们想在 Python 2.7 中将每个字节的十进制值单独一行写入一个文本文件(这是一件愚蠢的事情,但它演示了这些想法):

data = client_sock.recv(1024)
with open('textfile.txt', 'a') as f:
for ch in data:
f.write('{}\n'.format(ord(ch)))

关于python - 如何从 Python 中的套接字读取字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20481228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com