关键字:bluetooth 蓝牙协议 SDP剖析 SDP概述 SDP笔记
作者:zhongjun
本着互相学习的目的,来分享此一系列的文章,欢迎转载,请注明作者,尊重版权,谢谢
文章有不当处请指正,共同学习
另外可以从蓝牙栏目访问我的CSDN:http://blog.csdn.net/XiaoXiaoPengBo/article/category/5998687
------------------------------------------------------------------------------------------------------------------------------------
华丽分割线,进入正题
------------------------------------------------------------------------------------------------------------------------------------
一.概述
SDP协议是基于C/S(客户端/服务器)设计的,服务器和客户端之间的交互是通过PDU ID来发起请求和回应
PDU ID如下图:
下面就一一讲解各个PDU ID
二.PDU ID
1.SDP_ErrorResponse PDU
SDP服务器生成本PDU类型,以对未正确格式化的请求PDU进行应答,或者在SDP服务器由于某些原因而不能生成合适的应答PDU时进行应答
2.SDP_ServiceSearchRequest PDU and SDP_ServiceSearchResponse PDU
SDP客户生成一个SDP_ServiceSearchRequest以定位匹配给定服务搜
索模式的服务记录,该服务搜索模式是该PDU的首个参数。一收到该请求,
SDP服务器将检查其服务记录数据库,并将返回包含服务记录句柄的
SDP_ServiceSearchResponse,该服务记录匹配于给定服务搜索模式。
注意:并未提供任何可以获取所有服务记录信息的机制。但是,可以参
见服务浏览部分内容,可以找到,在不了解服务的情况下,允许对非指定
服务进行浏览的机制
在SDP服务器器收到一有效服务搜索请求SDP_ServiceSearchRequest
时,将生成一个服务请求应答SDP_ServiceSearchResponse。该应答包含与
该请求服务搜索模式相匹配的服务记录的服务记录句柄表。值得注意的是,
如果生成局部应答,则它必须包含整数个完整的服务记录句柄;而且不必
将服务记录句柄值在多个PDU中分割开来。
举例:
如果获取所有的服务句柄,参照如图
如果想获取单独服务的句柄,参照如图:
蓝牙UUID汇总:
请查看文章:http://blog.csdn.net/xiaoxiaopengbo/article/details/51405927
3.SDP_ServiceAttributeRequest PDU and SDP_ServiceAttributeResponse PDU
SDP客户将生成一个SDP_ServiceAttributeRequest协议数据单元,以
从一指定服务记录中检索指定属性值,并提供所需服务的服务记录句柄和
从服务记录中检索的属性ID表作为参数
在SDP服务器收到有效SDP_ServiceAttributeRequest报文时,将生成
一个 SDP_ServiceAttributeResponse应答。该应答包含被请求服务记录属
性列表(属性ID和属性值)
举例:
4.SDP_ServiceSearchAttributeRequest PDU and SDP_ServiceSearchAttributeResponse PDU
SDP_ServiceSearchAttributeRequest事务综合
SDP_ServiceSearchRequest和 SDP_ServiceAttributeRequest 二者功能
于一个请求中。作为参数,它既包含服务搜索模式,又包含一张属性表,
该属性表从与服务搜索模式匹配的服务记录中检索。
SDP_ServiceSearchAttributeRequest 及其应答与SDP_ServiceSearch 和
SDP_ServiceAttribute 两者相比,显得更复杂并且可能需要更多的字节。
但是,使用 SDP_ServiceSearchAttributeRequest 可以减少总的SDP事务
量,特别是当检索多条服务记录时。
要求注意的是,对于每一服务记录,每一服务记录的服务记录句柄将都包
含于该服务的ServiceRecordHandle属性中,并且会与其它属性一起接受请
求。
在SDP 服务器有效SDP_ServiceSearchAttributeRequest 时将生成一个
SDP_ServiceSearchAttributeResponse应答。该应答包含一张服务记录属
性表(属性 ID 和属性值),该服务记录要求与所请求的服务搜索模式匹配
举例: