- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文章编号:1009-8119(2005)07-0044-02
基于Intel UPnP SDK的UPnP协议编程
王增军
(北京理工大学计算机科学工程系,北京 100081)
摘 要 简单介绍了Intel UPnP开发包并以媒体服务器为例介绍了基于其上的UPnP协议编程。
关键词 UPnP, Intel SDK, MediaServer
Intel UPnP SDK Based UPnP Programming
Wang Zengjun
(Department of Computer Science and Technology,Beijing Institute of Technology,Beijing 100081)introduction to Intel? SDK for UPnP? Devices for Linux and an example of UPnP MediaServer developed based on the SDK.
Keywords UPnP, Intel SDK, MediaServer
1 UPnP简介
UPnP(通用即插即用Universal Plug and Play)是Microsoft对单机环境下即插即用技术概念在网络环境中的扩展。UPnP 支持零配置网络及自动查找功能,这样一来,设备即可动态加入网络,获取 IP 地址,宣布自己的名称,根据需要提供功能,并了解其它设备的存在和功能。此外,设备还可自动平稳地脱离网络,而不会遗留任何不必要的状态。UPnP 不依赖于特定的操作系统、编程语言或物理媒体。UPnP 面向家庭网络、小型企业和商住楼中的网络。正如Microsoft公司所称,“UPnP将延伸到家庭中的每一个设备,它会成为个人电脑、应用程序、智能设备集成工作所必需的框架、协议和接口标准”。
UPnP最基本的概念模型是设备模型,设备可以是物理的设备,也可以是逻辑的设备。设备分为两种:控制点和提供服务的设备,或称为受控设备,控制点是一个控制器,它可以检索设备和服务描述,发送动作到服务,查询服务的状态变量和从服务接收事件。允许用户使用或运行一个设备(例如CD播放机)的程序可以认为是控制点。控制点至少包括发现(Discovery)、描述(Description)和命令转换器(Rehydrator),还可以包含事件订阅等。一个控制点可同时控制多个设备,而控制点所在的设备可以同时是一个提供服务的设备。受控设备同样是一组软件模块的集合,用于实现同用户控制点的通讯,这些软件模块包括发现服务器(Discovery Server)、描述服务器(Description Server)、控制服务器(Control Server)以及表征服务器、事件订阅服务器、事件源等。
UPnP 使用Internet 上广泛应用的多种标准,包括 IP、TCP、UDP、HTTP 及 XML等作为设备之间通讯的协议, 使用这些标准化的协议有助于确保实现供应商之间的互操作性。由于相同的协议已在使用之中,因此几乎不需要执行任何操作就可以让 UPnP 设备在现有的网络化环境中工作。其中XML 是 UPnP 的核心部分,被用在设备和服务描述、控制消息和事件处理中。
UPnP设备工作过程包括设备寻址、设备发现、设备描述、设备控制、事件通知和设备表征几部分。设备寻址是指当一个设备接入网络时,通过DHCP服务器,或者通过Auto IP获得唯一的IP地址。下面就是设备发现,使用简单服务发现协议SSDP(Simple Service Discovery Protocol)来完成,控制点可以主动搜索,其他设备响应,或者设备通过广播所能提供的服务通知控制点,控制点将得到一个指向服务设备描述页面的URL,控制点根据这个URL获得服务设备详细的信息。在接收设备和服务描述之后,控制点可以向这些服务发出动作,为获得服务的状态,控制点也可以进行轮询,或者向服务订阅事件,当服务的状态改变时,服务就会向控制点发布设备事件。设备表征并不强制实现,它采用HTML页的形式,使控制点能在浏览器中打开,通常用来给用户提供控制设备或者浏览设备状态的界面。
2 Intel? SDK for UPnP? Devices for Linux
Intel开发包使用C语言开发,它是开源的。开发包封装了UPnP涉及的众多协议,涵盖从寻址、发现到表征各个过程,提供了简单的接口。这样,开发人员就摆脱了各种协议的细节,只需进行服务或者控制所需的具体开发,简化了UPnP应用的设计开发。另外,该开发包还包括多线程支持库,XML解释器,迷你Web服务器等。
基于Intel开发包开发UPnP应用,以服务设备为例,主要有以下几个基本步骤:
首先是初始化:包括开发包的初始
文档评论(0)