Bluetooth协议栈学习之SDP
2010-07-07 09:19
204 查看
本文作者的博客地址:http://blog.sina.com.cn/samzhen1977
作者:Sam (甄峰)
sam_code@hotmail.com
SDP(service
discovery
protocol:服务发现协议
)提供了一个方法,让应用程序检测哪些服务是可用的并探测这些可用服务的特性。
服务发现协议(SDP或Bluetooth
SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth
client发现可用bluetooth
server服务和它们的特征的方法。这个协议定义了客户如何能够寻找基于特定属性的服务而不让客户知道可用服务的任何知识。SDP提供发现新服务的方
法,在当客户登录到正在操作的蓝牙服务器的一个区域时是可用的时。
SDP提供了一套SDP server和SDP client之间的通讯方法。 SDP
server维护着一个服务条目
列表,这个列表存放着SDP
server对应的服务以及服务特性。每个服务条目
对应一个单独的服务。SDP
client可以通过发送请求得到SDP server维护的这个服务条目list.
如果SDP
client或者联系于client之上的应用程序决定使用某个service,则打开一个针对此服务的连接到服务提供者去使用此服务。SDP只是提供侦
测service以及特性的方法,但不提供如何使用这些service的方法.
每个bluetooth device最多有一个SDP server. 如果某个device只作为client.则不需要拥有SDP
server.而一个bluetooth device可以同时为SDP client和SDP server.
服务条目(Service Record):
一个service就是某个实体提供一些信息,执行某种动作,或控制资源代表另一个实体。一个service可以由软件,硬件或软硬件结合提供。
SDP server维护的service条目包含在service record中。
SDP server中,每个service record由一个32位数与别的record区别。注意,只是在这个SDP
server内。
当SDP server添加或删除某个service时,不会主动提供给client.
Service 属性:
每个属性描述一个service的特征。
service属性包含两部分:
attribute ID + attribute Value.
属性ID是一个16bit的值,用来和Service record内的其它属性区别开来。
Service Class:
每个server是 service class的一个实例。service
class定义了service(此class的实例)的每个特性。属性对应attribute ID,属性value的格式,
每个service
classs也指定为一个的标识符。这个标识符被包含在属性ServiceClassIDList中。并描述为UUID。
Search for
service:
service search功能允许SDP client得到包含在service record 中的service
属性。
可以使用属性的Universally Unique Identifiers1 (UUIDs)得到属性。
作者:Sam (甄峰)
sam_code@hotmail.com
SDP(service
discovery
protocol:服务发现协议
)提供了一个方法,让应用程序检测哪些服务是可用的并探测这些可用服务的特性。
服务发现协议(SDP或Bluetooth
SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth
client发现可用bluetooth
server服务和它们的特征的方法。这个协议定义了客户如何能够寻找基于特定属性的服务而不让客户知道可用服务的任何知识。SDP提供发现新服务的方
法,在当客户登录到正在操作的蓝牙服务器的一个区域时是可用的时。
SDP提供了一套SDP server和SDP client之间的通讯方法。 SDP
server维护着一个服务条目
列表,这个列表存放着SDP
server对应的服务以及服务特性。每个服务条目
对应一个单独的服务。SDP
client可以通过发送请求得到SDP server维护的这个服务条目list.
如果SDP
client或者联系于client之上的应用程序决定使用某个service,则打开一个针对此服务的连接到服务提供者去使用此服务。SDP只是提供侦
测service以及特性的方法,但不提供如何使用这些service的方法.
每个bluetooth device最多有一个SDP server. 如果某个device只作为client.则不需要拥有SDP
server.而一个bluetooth device可以同时为SDP client和SDP server.
服务条目(Service Record):
一个service就是某个实体提供一些信息,执行某种动作,或控制资源代表另一个实体。一个service可以由软件,硬件或软硬件结合提供。
SDP server维护的service条目包含在service record中。
SDP server中,每个service record由一个32位数与别的record区别。注意,只是在这个SDP
server内。
当SDP server添加或删除某个service时,不会主动提供给client.
Service 属性:
每个属性描述一个service的特征。
service属性包含两部分:
attribute ID + attribute Value.
属性ID是一个16bit的值,用来和Service record内的其它属性区别开来。
Service Class:
每个server是 service class的一个实例。service
class定义了service(此class的实例)的每个特性。属性对应attribute ID,属性value的格式,
每个service
classs也指定为一个的标识符。这个标识符被包含在属性ServiceClassIDList中。并描述为UUID。
Search for
service:
service search功能允许SDP client得到包含在service record 中的service
属性。
可以使用属性的Universally Unique Identifiers1 (UUIDs)得到属性。
相关文章推荐
- Bluetooth协议栈学习之SDP
- Bluetooth协议栈学习之SDP
- Bluetooth协议栈学习之SDP
- Bluetooth协议栈学习之SDP
- Bluetooth协议栈学习之SDP
- Bluetooth协议栈学习之SDP(2009-06-08 15:46:15)
- Android Bluetooth模块学习笔记
- Android Bluetooth源码学习笔记01
- How to use bluetooth tools --- hciattach hciconfig hcitool sdptool rfcomm
- 实战Linux Bluetooth编程 (七) SDP协议
- 学习linux协议栈关键数据结构
- Zigbee学习(三)之Zstack协议栈应用实践
- 学习Linux-4.12内核网路协议栈(1.6)——协议栈的初始化(inet_init实现过程)
- Android Bluetooth opp package 学习笔记
- 学习Linux-4.12内核网路协议栈(1.5)——协议栈的初始化(inet_init主要数据结构)
- 学习Linux-4.12内核网路协议栈(3.2)——网路层的发包处理
- SylixOS_LWIP协议栈学习:网络接口结构
- lwip协议栈学习---udp
- Android 4.4 Bluetooth学习之一
- LwIP协议栈学习--内存管理