![](/img/trans.png)
[英]Python alternative to linux bluetooth command “rfcomm connect”
[英]Bluetooth server received wrong text data RFCOMM
我在 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、藍牙終端(...))發送數據時,我從 PyCharm 獲得b'my string'
屏幕截圖
我的文本數據前面的b
符號是什么意思? 我如何只能打印我的字符串?
基本上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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.