我正在使用pybluez在python中在linux上开发蓝牙应用程序。我想知道是否可以连接到" localhost"对于蓝牙,所以我可以在同一台机器上运行客户端和服务器(就像大多数人用于Web开发一样)。
如果不可能,大多数人如何开发蓝牙应用程序?他们只是在不同的设备上运行客户端和服务器,还是有更聪明的方法来处理它?</ p>
最终服务器将运行在覆盆子pi上,客户端将是任何支持蓝牙的设备(手机,笔记本电脑等),但在开发过程中,如果我可以在同一台机器上运行它们将会很棒。
这是我的服务器:
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")
时,它无法找到任何服务。
答案 0 :(得分:2)
通过进一步的研究,我发现在同一台设备上使用相同的蓝牙适配器运行蓝牙客户端和服务器是不可能的。对于本地测试,您可以使用两台支持蓝牙的计算机,也可以使用蓝牙加密狗。
答案 1 :(得分:-1)
无法在同一设备上运行Bluetooth客户端和服务器。 我使用了pybluez python模块。 当我在机器上的客户端代码中运行bluetooth.discover_devices(lookup_names = True)时,它将返回除机器以外的所有其他蓝牙设备。
由于我们无法发现计算机,因此无法通过蓝牙连接到该计算机,也无法将其用作蓝牙服务器。