MicroPython Socket 发送字符串而不进行编码

问题描述 投票:0回答:1

我正在尝试编写运行 Raspberry Pi 4 和 Pico 的代码。唯一的问题是套接字库。在 Pico 上这有效:

cl.send("

时钟:" + strClk + "

")

在 Raspberry Pi 4 上,需要执行以下操作:

cl.send(str.encode("

时钟:" + chr(32) + strClk + "

"))

简单的字符串可以通过强制转换来处理:

cl.send(b"

时钟

"

Pico 似乎将字符串视为字节数组。任何有关如何处理此问题的建议将不胜感激。

string sockets raspberry-pi raspberry-pi-pico
1个回答
0
投票

在常规 Python 中,套接字

send
方法需要一个字节字符串。根据MicroPython文档,要求是相同的。

socket.send(bytes)

向套接字发送数据。该套接字必须连接到远程套接字。返回发送的字节数,该字节数可能小于数据长度(“短写”)。

看起来 MicroPython 也会接受字符串参数,但在这种情况下,不清楚您到底要传输什么,所以我会避免这种情况,并且在 MicroPython 和 Python 中总是将字符串编码为字节:

cl.send(f"Clock: {strClk}".encode())

这将在两个 Python 实现中做正确的事情。

© www.soinside.com 2019 - 2024. All rights reserved.