2016-08-10 18 views
2

私はPythonでLinux上でBluetoothアプリケーションを開発するためにpybluezを使用しています。私はブルートゥースのための "localhost"に接続することが可能かどうかを知りたいので、クライアントとサーバを同じマシンで実行できます(ほとんどの人がWeb開発のために行います)。ローカルBluetoothに接続

これが不可能な場合は、ほとんどの人がどのようにBluetoothアプリケーションを開発するのですか?彼らはクライアントとサーバーを異なるデバイス上で実行するだけですか、これを処理するより巧妙な方法がありますか?

最終的にサーバーはラズベリーパイで実行され、クライアントは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クライアントとサーバーを実行できないことが判明しました。ローカルテストでは、2台のBluetooth対応コンピュータを使用するか、Bluetoothドングルを入手できます。

関連する問題