gpt4 book ai didi

python - 蓝牙服务器接收到错误的文本数据 RFCOMM

转载 作者:行者123 更新时间:2023-12-05 07:42:36 25 4
gpt4 key购买 nike

我在 Python 3 上创建了简单的蓝牙 RFCOMM 服务器

这是我的代码:

import bluetooth

class Bluetooth:
def __init__(self, port, backlog, size):
#backlog = number of users who can connect to socket at the same time
#size = message size
s = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
s.bind(("", port)) #(mac addres, port)
s.listen(backlog)
print("Server is active, waiting for connection!")

while True:
client, clientInfo = s.accept()
print("Connected with :", clientInfo)
try:
while True:
data = client.recv(size)
if data:
print(data)
except:
print("Closing socket")
client.close()
print("Waiting for connection!")

s.close()
print("Server closed!")

当我从 BlueTerm、BlueTerm2、蓝牙终端 (...) 等安卓设备应用程序发送数据时,我得到 b'my string' 来自 PyCharm 的屏幕截图

Screenshot from PyCharm

我的文本数据前面的 b 符号是什么意思?我如何才能只打印我的字符串?

最佳答案

基本上 client.recv(N) 等待发送 N 个字节的数据。因此,最终您得到的是字节字符串(而不是 utf-8 或 ascii 等格式的字符串)。

回答数据前面的问题 b 指定它是 byte string 类型。

为了将字节字符串转换为字符串,您可以使用

byte_data = client.recv(size)
data = byte_data.encode('utf-8') # to encode data in utf-8 format

关于python - 蓝牙服务器接收到错误的文本数据 RFCOMM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44378663/

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