红联Linux门户
Linux帮助

linux下多线程实现同时连接多个蓝牙设备

发布时间:2008-07-25 10:31:21来源:红联作者:lvcebo
作者:Rainy0415

linux下基于bluez 与openobex库实现蓝牙传输,目前实现的基本流程为:

inquiry--->通过SDP获得对方channel--->创建线程

线程实现对查询到的蓝牙设备发送文件,主要操作包括:创建一个obex instance handle、socket处理、建立连接、发送文件等;

实际测试过程中,发现非常的不稳定,经常出现连接失败的问题,每次能够同时建立连接的蓝牙设备个数不定,连接失败出现的错误信息为“Device or resource busy”,很郁闷,跟踪调试发现sockt创建与绑定都没有问题,而是在实现socket connect的时候出现问题,又不能进到里面看看。

今天在msn上跟一个朋友聊起了这个问题,却被他一语点破(当然还没有彻底明白,但是知道怎么回事了,他说受蓝牙跳频技术的影响,在两个蓝牙设备建立连接之前,两个设备之间的跳频序列是不确定的,同时连接就会互相干扰,所以蓝牙连接的建立要依次实现,但是连接建立之后,两个蓝牙设备之间的跳频序列就确定了,可是同时进行数据的传输,是没有问题的。
文章评论

共有 1 条评论

  1. luciffer 于 2008-07-25 13:37:58发表:

    应该很稳定的吧。我的可以实现自动scan然后推送,可以同进接受七个下载!没有发现什么问题。