UPnP 体系架构和基本原理 —— Linux SDK for UPnP Devices

本文介绍了Linux SDK for UPnP Devices,它是一个开源协议栈,旨在降低UPnP设备的开发成本和周期。内容涵盖WEB服务器、XML解析器、线程库、HTTP解析器和微型服务器的详细功能,阐述了如何利用这些组件实现UPnP协议的各个部分,如SSDP、GENA和SOAP。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UPnP 体系架构和基本原理 —— Linux SDK for UPnP Devices

Linux SDK for UPnP Devices

UPnP架构基于Internet和TCP/IP等成熟协议,使之实现与底层硬件无关、与开发的程序设计语言无关、与操作系统无关等特性,故整个UPnP设备的设计开发过程均可由设备制造商按照UPnP规范开发。这虽说提高开发的自由度,但也带来重复开发和资源浪费的问题。
因此,为了降低UPnP设备的开发成本和周期,促进UPnP的发展,2000年Intel公司开放了第一个基于Linux的采用C语言开发的开源UPnP协议栈源代码Linux SDK for UPnP 。

基于Linux的开源UPnP协议栈体系结构

libupnp对UPnP协议规范进行抽象,包含寻址到表达的六个过程,实现了其中SSDP、GENA和SOAP等协议模块,提供了响应的API接口。减少了开发者重复开发的工作量,降低了开发难度和开发周期。

WEB server

WEB server模块主要处理UPnP中使用的标准HTTP GET请求。该WEB server模块管理设备描述文档和服务描述文档的URL地址,当HTTP GET请求到来时提供相应的文档数据。同时,WEB server模块也支持对虚拟路径的HTTP POST请求。

XML解析器

UPnP工作过程中广泛使用了XML,设备描述文档和服务描述文档就是XML文档,GENA的任何通知都采用XML来描述服务的状态变化,SOAP的请求和响应消息也使用XML进行描述。XML解析器模块用于对这些XML信息按照其特性进行解析处理,并

UPnP_Programming_Guide Intel® SDK for UPnPDevices 1 Overview .................................................................................................................................... 1 1.1 UPnP Overview................................................................................................................1 1.1.1 Discovery.............................................................................................................1 1.1.2 Description...........................................................................................................2 1.1.3 Control ................................................................................................................2 1.1.4 Eventing ..............................................................................................................2 1.1.5 Presentation .........................................................................................................3 1.1.6 Control Point and Device Interaction .....................................................................3 1.2 SDK Architecture .............................................................................................................5 1.2.1 Device/Control Point Application ..........................................................................5 1.2.2 SDK API .............................................................................................................5 1.2.3 SSDP...................................................................................................................6 1.2.4 Mini Web Server ..................................................................................................6 1.2.5 GENA .................................................................................................................6 1.2.6 SOAP ..................................................................................................................6 1.2.7 HTTP ..................................................................................................................6 1.2.8 Mini Server ..........................................................................................................6 1.2.9 ThreadUtil Library................................................................................................7 1.2.10 XML Parser .........................................................................................................7 1.2.11 BSD Socket Layer................................................................................................7 1.3 Virtual Directories ............................................................................................................8 2 Writing a UPnP Device ............................................................................................................ 10 2.1 Setup and Initialization ................................................................................................... 10 2.1.1 Initializing the SDK ............................................................................................ 10 2.1.2 Setting a Root Directory ...................................................................................... 11 2.1.3 Registering a Root Device................................................................................... 11 2.1.4 Device Specific Initialization ............................................................................... 12 2.1.5 Advertising the Device........................................................................................ 12 2.2 Handling Requests.......................................................................................................... 12 2.2.1 Subscription Requests ......................................................................................... 13 2.2.2 Get Variable Requests ......................................................................................... 14 2.2.3 Action Requests ................................................................................................. 16 2.3 Sending Events............................................................................................................... 17 2.4 Shutting Down ............................................................................................................... 18 3 Writing a UPnP Control Point................................................................................................. 19 3.1 Setup and Initialization ................................................................................................... 19 3.1.1 SDK Initialization............................................................................................... 19 3.1.2 Control Point Application Specific Initia lization ................................................... 20 3.1.3 Control Point Registration ................................................................................... 20 3.2 Searching for Something Interesting ................................................................................ 20 3.3 Retrieving Descriptions ................................................................................................... 22 3.4 Watching for Events ....................................................................................................... 23 iv Intel® SDK for UPnPDevices Version 1.2.1 3.5 Invoking Actions ............................................................................................................ 24 3.6 Shutting Down ............................................................................................................... 26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值