【问题标题】:Choosing Bluetooth Device/Dongle in Socket Code - Bluez Stack在套接字代码中选择蓝牙设备/加密狗 - Bluez Stack
【发布时间】:2015-08-21 07:44:10
【问题描述】:

我有两个加密狗连接到我的 linux 机器,即 hci0 和 hci1,我需要使用套接字通信与外部蓝牙模块进行通信。 有什么方法可以让我在建立套接字连接时选择使用哪个设备? (例如 hci0 或 hci1,同时开始通信)。

参考来源:RFCommSocket

在这个示例中,所有内容都是创建套接字。我能够进行通信和交换数据,但现在我需要能够从哪个设备开始通信。

示例中的套接字创建如下。

 s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);

这不允许我选择我想使用的设备,我知道默认情况下系统会选择列表中的第一个设备,但是有没有办法指定我可以使用哪个设备?

我的应用程序需要 4 个设备连接到 dongle_a 和 4 个设备连接到 dongle_b,有没有办法选择在哪个设备上启动套接字连接?

【问题讨论】:

    标签: linux sockets bluetooth rfcomm


    【解决方案1】:
    // bind socket to port 1 of the first available 
    // local bluetooth adapter
    loc_addr.rc_family = AF_BLUETOOTH;
    loc_addr.rc_bdaddr = *BDADDR_ANY;
    loc_addr.rc_channel = (uint8_t) 1;
    bind(s, (struct sockaddr *)&loc_addr, sizeof(loc_addr));
    

    绑定到适当的bdaddr 地址而不是BDADDR_ANY

    【讨论】:

      猜你喜欢
      • 2012-10-29
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 2016-10-16
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2014-12-16
      相关资源
      最近更新 更多