我正在使用 BlueZ 库来管理 linux 下的蓝牙堆栈。我正在尝试打开一个应该与已知 UUID 的特定服务连接的套接字。我已成功尝试按照此处的示例打开服务器和客户端之间的套接字:
http://people.csail.mit.edu/albert/bluez-intro/c404.html
其中还描述了如何探索远程主机中的服务;但是,我无法弄清楚如何在连接套接字时指定 UUID。这在其他情况下非常简单,因为它在使用 Android 库时会发生;但是,对于 BlueZ,我还没有在网上找到示例。
谢谢您的帮助!
斯特凡诺
-- 在回复中补充了一些细节……不知道对不对;如果没有,对不起
感谢您的帮助!
在我的帖子中,我说我想连接一个具有指定 UUID 的套接字,因为我想到了一个像 createRfcommSocketToServiceRecord 这样的函数,可以在以下位置找到:
它返回给定特定 UUID 的套接字。我正在开发两个软件,一个是客户端,另一个是服务器,因此这是我正在创建的服务,而不是标准服务。我使用指定的 UUID 在服务器上发布此类服务,并且我想从客户端连接到它。服务器运行良好,因为使用 android 平台,利用提到的 createRfcommSocketToServiceRecord 方法,我能够使用正确的服务连接到服务器。
您发布的示例也很清楚,但不幸的是它是在 Python 中,而(我忘了指出)我使用 Bluez 作为 C 库。我能够利用 SDP 并检查远程服务器上的服务;但是,在设置套接字时,我看不到如何指定端口。我想到了 rc_channel,但据我了解,它是蓝牙通道(范围从 1 到 11 或类似的东西)。您能否指出在客户端创建套接字时我应该能够在哪里指定端口?在 sdp 处理的复杂结构中,我在哪里可以找到正确的端口?——参考:
http://people.csail.mit.edu/albert/bluez-intro/x604.html
再次感谢您的帮助!