实验名称:服务发现的功能 一、实验环境 每2台PC为一组。 硬件: SEMIT TTP6602 2块; 串口连接线 2根。 软件: OS:Windows 2000; 显示设置:Windows标准字体; 分辨率:1024×768。 二、实验目的 通过具体的蓝牙服务发现协议: 了解网络的服务发现方式; 了解数据的表示方式; 掌握服务发现的工作流程; 掌握典型的客户-服务器工作模式 三、实验原理 1.服务发现的功能 对于蓝牙设备来说,要想访问另一个设备的服务,必须知道该设备所提供的服务,以及获取该服务的一些信息(如该服务使用的各种协议栈、服务名称、服务提供者和获得服务所需要的参数)。 常用的服务发现方式: 服务定位协议 SLP(Service Location Protocol) 通用即插即用 UPnP(Universal Plug and Play) 蓝牙 SIG专门为蓝牙系统制定了一个服务发现协议 SDP(Service Discovery Protocol),它非常适合蓝牙系统移动性较强的的特点,并且可以和其它服务发现协议共存于蓝牙环境中,符合蓝牙系统开放性的特点。 蓝牙服务发现协议的基本出发点是发现服务但不提供对服务的访问,对服务的访问需要通过其它协议来实现。 2.客户机-服务器模型 客户机-服务器交互是大多数网络通信的基础模式。 客户机发送请求,等待响应。 而服务器等待请求并完成基于请求的动作,形成响应的数据包,返回给客户机。 服务发现协议是典型的客户机-服务器模型。 每个服务发现协议分为客户端部分和服务器端部分,两部分在不同的蓝牙设备上工作。 一个蓝牙设备可以既是服务器同时又是客户机。 请求服务的蓝牙设备运行服务发现协议的客户端部分,提供服务的蓝牙设备运行服务发现协议的服务器端部分。 SDP 客户端与服务器交互模型: 3.数据元的编解码 编码过程: 将服务记录用数据元格式表示出来,在注册函数中调用。 解码过程: 将查询返回的服务属性数据元解析成可以理解的服务记录形式,用树形结构给出。 4.PDU交互的工作流程 SDP 定义了 2种获取服务信息的方式: 查 找 服务方 式 : 在 用 户 知 道 服务的UUID的情 况 下 , 用 户 通 过 指 定 服务类 型(ServiceSearchPattern)来直接获得服务记录信息; 服务发现协议的服务器端是根据服务类型来找与用户所要求的服务相匹配的服务记录的,它是唯一的查找服务的手段。 浏览服务方式:不知道服务的UUID,浏览各个服务记录; 为了支持该方式,服务记录必须含有 Brow...