Linux环境下多线程实现同时连接多个蓝牙设备
Linux下基于bluez 与openobex库实现蓝牙传输,目前实现的基本流程为:
inquiry--->通过SDP获得对方channel--->创建线程
线程实现对查询到的蓝牙设备发送文件,主要操作包括:创建一个obex instance handle、socket处理、建立连接、发送文件等;
实际测试过程中,发现非常的不稳定,经常出现连接失败的问题,每次能够同时建立连接的蓝牙设备个数不定,连接失败出现的错误信息为“Device or resource busy”,很郁闷,跟踪调试发现sockt创建与绑定都没有问题,而是在实现socket connect的时候出现问题,又不能进到里面看看。
今天在msn上跟一个朋友聊起了这个问题,却被他一语点破(当然还没有彻底明白,但是知道怎么回事了,他说受蓝牙跳频技术的影响,在两个蓝牙设备建立连接之前,两个设备之间的跳频序列是不确定的,同时连接就会互相干扰,所以蓝牙连接的建立要依次实现,但是连接建立之后,两个蓝牙设备之间的跳频序列就确定了,可是同时进行数据的传输,是没有问题的。
相关推荐
80296330 2020-09-15
SeetyST 2020-08-13
张俊杰 2020-08-02
浅梦墨汐 2020-07-28
北落不吉 2020-06-27
棋牌游戏开发 2020-06-11
greenpepper 2020-06-11
greenpepper 2020-06-13
seek 2020-06-10
dotstar 2020-06-02
hushijiao 2020-05-17
浅梦墨汐 2020-05-12
chinaycheng 2020-05-06
sixforone 2020-05-06
海豚的成长日记 2020-05-04
greenpepper 2020-04-29
greenpepper 2020-04-22
海豚的成长日记 2020-01-12