论文部分内容阅读
通用即插即用(UPnP)是由一系列协议组成的协议簇,它使用简单服务发现协议(SSDP)来控制设备加入和离开网络,使用超文本传输协议(HTTP)保证应用层通信,使用扩展标记语言(XML)和简单对象访问协议(SOAP)来完成跨平台的服务内容和控制信息的描述,并且在此基础上建立起一套旨在实现设备间数据共享、通信和互联娱乐的功能性网络服务。使网络中的设备,比如个人电脑,打印机以及移动设备实现无缝的发现其他设备并且完成设备间的互连、互控。软件使用C++作为开发语言,以Linux操作系统和Intel凌动处理器作为软件支撑平台。通过分析UPnP协议的组成以及具体的设备应用需求,提出一个将智能机顶盒设计为UPnP设备端软件与服务端软件的系统实现方法。利用面向对象设计思想,将各协议解析过程和设备信息处理封装到对应基类,不同端软件负责实例化其子类,降低数据和代码的冗余性。服务端软件与设备端软件通过发送SSDP通知数据包或者接收SSDP搜索数据包加入UPnP网络,并建立起各自的服务内容信息。根据HTTP请求操作名的的不同,服务端实现了利用Linux系统调用检索和读取本地文件或目录,供控制端对其可见内容的浏览和传输的功能。设备端实现了接收控制端控制并进一步将XML格式的控制信息解析后,把元数据通过终端播放软件解析播放的功能。