2016-08-10 3 views
2

Я использую pybluez для разработки приложения bluetooth на linux в python. Я хочу знать, можно ли подключиться к «localhost» для bluetooth, чтобы я мог запускать клиент и сервер на одной машине (как это делают большинство людей для веб-разработки).Подключиться к локальному bluetooth

Если это невозможно, как большинству людей разрабатывать приложения для bluetooth? Они просто запускают клиент и сервер на разных устройствах или есть более умный способ справиться с этим?

В конечном счете сервер будет работать на малине pi, а клиентом будет любое устройство с поддержкой bluetooth (сотовый телефон, ноутбук и т. Д.), Но во время разработки было бы здорово, если бы я мог работать на одной машине.

Вот мой сервер:

import bluetooth as bt 

socket = bt.BluetoothSocket(bt.RFCOMM) 

host = "" 
socket.bind((host, bt.PORT_ANY)) 
port = socket.getsockname()[1] 
print("port: " + str(port)) 
socket.listen(1) 

uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee" 
# bt.advertise_service(socket, "BTServer", uuid) 

print("Listening on " + host + ":" + str(port)) 

client_sock, addr = socket.accept() 
print("Connection accepted from " + addr) 

data = client_sock.recv(1024) 
print(data) 

client_sock.close() 
socket.close() 

И когда я звоню services = bt.find_service(name=None, uuid=None, address="localhost") на клиенте он не может найти какие-либо услуги.

ответ

2

В ходе дальнейших исследований я обнаружил, что невозможно запустить клиент и сервер bluetooth на одном устройстве с одним и тем же адаптером bluetooth. Для локального тестирования вы можете использовать два компьютера с поддержкой bluetooth или получить Bluetooth-ключ.