我有两个连接到我的linux机器的加密狗,即hci0和hci1,我需要使用套接字通信与外部蓝牙模块通信。 在建立套接字连接时,有什么方法可以选择使用哪个设备? (例如,hci0或hci1,在开始通信时)。
参考资料来源:RFCommSocket
在这个例子中,所有这些都是套接字创建。我能够进行通信和交换数据,但现在我需要能够从哪个设备开始通信。
示例中的Socket Creation如下所示。
s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
哪个不允许我选择我想要使用的设备,我知道默认情况下系统会选择列表中的第一个设备,但有没有办法指定我可以使用哪个设备?
我的应用程序需要在dongle_a上连接4个设备和连接到dongle_b的4个设备,有没有办法选择启动套接字连接的设备?
答案 0 :(得分:0)
// 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
。