当前位置: 首页 > 知识库问答 >
问题:

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

欧阳玺
2023-03-14

我在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!")

当我从android设备应用程序发送数据时,比如BlueTerm、BlueTerm2、Bluetooth Terminal(…)我从PyCharm获得了b'my string'截图

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

共有1个答案

陶淳
2023-03-14

基本上client.recv(N)等待N个字节的数据被发送。所以,最终你得到的是字节字符串(而不是utf-8或ascii等中的字符串)。

对数据前面的问题b的回答是指定它是字节字符串类型。

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

byte_data = client.recv(size)
data = byte_data.encode('utf-8') # to encode data in utf-8 format
 类似资料:
  • 问题内容: 我是Android开发的新手,我想开发一个使用蓝牙发送和接收文本的应用程序。从逻辑上讲,我已经获得了有关发送文本的所有信息,但是当我尝试在手机中对其进行测试时,看不到该界面。 这是代码 UUID.fromString(“00001101-0000-1000-8000-00805f9b34fb”); mmSocket = mmDevice.createRfcommSocketToServ

  • 实现蓝牙发送和接收数据的demo。文件包含两个工程,一个接收,一个发送。 [Code4App.com]

  • 1.1. 蓝牙相关代码目录: 1.2. 更新代码后如果发生编译通不过或者运行时错误的情况: 1.3. 如果模组相同,只是迁移平台: 1.4. 如果模组切换,则还需要增加的步骤: 1.5. 如果厂商需要定义自己的 BLE 的 UUID: 1.6. 如何确认蓝牙服务已经正常: 1.1. 蓝牙相关代码目录: buildroot/package/aml_brcm_bsa:博通模组厂商提供的代码包,主要是m

  • 我正在开发一个蓝牙应用程序来控制Arduino板,但现在我犯了一些错误:当我试图从手机连接时,它会显示一个(没关系)和许多祝酒(它们是从调用的)。BT模块连接到板子是可以的(测试与其他应用程序),所以问题是Java:我不能建立一个连接到我的BT模块。不幸的是,Android Studio没有给我任何日志或错误。这是我的代码:

  • 在尝试发送存储在变量中的数据时,我遇到了一个问题。我希望变量是一个介于0和10之间的int,但我收到的是255或254作为值。请帮帮我 下面是我的代码:

  • 我有一个蓝牙设备,用户可以通过它拍照。拍摄照片后,蓝牙设备将所有图像托管在自己的HTTP服务器(10.0.0.1)上,以便其他设备可以使用蓝牙连接到服务器,并使用服务器公开的REST API从服务器访问照片。 连接蓝牙设备(服务器)的步骤 进入设置,启用蓝牙 选择蓝牙设备 蓝牙设备设置(配对蓝牙设备) 选中Internet访问复选框。 通过这个我能够访问蓝牙服务器,但我的WiFi自动禁用,我无法访