4

我正在使用 pybluez 在 python 中的 linux 上开发蓝牙应用程序。我想知道是否可以连接到蓝牙的“本地主机”,这样我就可以在同一台机器上运行客户端和服务器(就像大多数人为 Web 开发所做的那样)。

如果这不可能,大多数人如何开发蓝牙应用程序?他们只是在不同的设备上运行客户端和服务器,还是有更聪明的方法来处理这个?

最终,服务器将在树莓派上运行,客户端将是任何支持蓝牙的设备(手机、笔记本电脑等),但在开发过程中,如果我可以在同一台机器上同时运行两者会很棒。

这是我的服务器:

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")给客户时,它找不到任何服务。

4

2 回答 2

3

通过进一步研究,我发现不可能在具有相同蓝牙适配器的同一设备上运行蓝牙客户端和服务器。对于本地测试,您可以使用两台启用蓝牙的计算机或获取蓝牙加密狗。

于 2016-08-11T01:42:27.217 回答
-1

不能在同一设备上运行蓝牙客户端和服务器。我使用了 pybluez python 模块。当我在我的机器上的客户端代码中运行 bluetooth.discover_devices(lookup_names=True) 时,它会返回它周围的所有其他蓝牙设备,除了我的机器。

由于我们无法发现机器,我们无法通过蓝牙连接到它,也不能将其用作蓝牙服务器。

于 2020-08-07T01:12:23.957 回答