UPnP的相关资料_整理


一些概念

    

    UPnP: Universal Plag and Play,通用即插即用
    URN : Uniform Resource Name,统一资源名称,用于定位服务,与地址无关
    URL : Universal Resource Location,统一资源定位符,一般是一个链接形式,如:http://219.231.158.236:49152/tvdevicedesc.xml
    URI : Uniform Resource Indentifier,统一资源标识符, URN和URL都属于URI,不过在UPNP中,没有URI
    UDN : Unique Device Name,唯一设备名,格式为 uuid:Upnp-string 例如: uuid:Upnp-TVEmulator-1_0-1234567890001
    SID : Subscribe ID,订阅注册号 格式为uuid:8-4-4-4-12 例如: uuid:920ebc56-594c-11e6-81a4-9c1bd9c2d948
    DeviceType : 设备类型,如: urn:schemas-upnp-org:device:tvdevice:1
    friendlyName : 设备友好名称,主要是方便用户记忆,比长串的设备类型字符串好多了
    SCPDURL : 服务的URL,如 :http://219.231.158.236:49152/tvcontrolSCPD.xml
    serviceType : 服务类型,以urn标示,如:urn:schemas-upnp-org:service:tvcontrol:1
    ServiceID : 服务ID号,如: urn:upnp-org:serviceId:tvcontrol1
    CP:control point,控制点


UPnP

UPnP原理(2014-03-21 16:02):  http://blog.csdn.net/hjx5200/article/details/21723019
    这篇博客讲解了基本的ControlPoint(控制点)与设备之间的控制结构
    介绍了基本UPnP控制的流程(设备编址注册-->发现-->描述-->控制-->事件-->表达)
UPnP的工作过程(2013-11-10 15:38): http://www.cnblogs.com/lcw/p/3416730.html
    这篇博客将6个步骤讲得非常详细,要仔细阅读
        UPnP分为6个步骤:
            先是Addressing,设备加入网络,通过DHCP或者Auto-IP获得IP;这部分在闪联IGRS中是没有定义的。
            然后是Discovery,采用SSDP协议(UDP),用multicast/unicast可以完成设备的上线和离线通知和组播搜索设备,设备用unicast(单播,UDP)响应CP的搜索。
            往下是Description,通过HTTP协议(TCP)取回来是一个XML文档,包含物理描述和服务描述;
            再来是Control,采用SOAP协议(HTTP/TCP),完成CP和devices之间的交互;
            Eventing,采用GENA协议(HTTP/TCP),完成设备事件消息的订阅和推送,为保证可靠性,故是TCP传输;事件的推送还有multicast (UDP)。
            最后是Presentation。UPnP并没有定义Presentation应该有哪些东西。一个HTML嘛,哪样写得好哪样来!


使用到的协议

        SSDP协议(Simple Service Discovery Protocol,简单服务发现协议),允许上线的设备发布广播,通知CP自己拥有的服务.当一个cp进入网络后,SSDP协议允许它搜索网络上的可用设备.
        SOAP协议(Simple Object Access Protocol,简单对象访问协议),允许CP向设备的ControlURL发送操作请求,SOAP协议含有消息body,包含Action invocation,指示如何控制设备
        GENA协议(General Event Notification Architecture,普通事件通知体系),允许CP和设备之间进行订阅消息


DLNA

DLNA介绍(2011-05-03 16:49): http://blog.csdn.net/musiccow/article/details/6387603

    主要讲了DLNA(Digital Life Networking Alliance,数字生活网络联盟)
    为什么要了解DLNA呢,因为我们所使用的UPnP协议技术,最初是为DLNA服务的,属于其中一层
    很多设备的描述标准也是DLNA制定的.
    UPnP 构成了其设备发现&控制,媒体管理和远程UI这一层(很重要的一层)


设备描述和服务描述

关于设备描述和服务描述文件(2015-01-08 20:13): http://blog.csdn.net/deyangliu/article/details/42529233

    设备描述文件(devicedesc.xml)定义设备,以及设备所提供的服务种类
    服务描述文件(service_SCDP.xml)定义服务所需要的动作和服务所涉及的变量,状态等..


libupnp库

具体到libupnp的使用,这里有几篇:

    官网link: http://pupnp.sourceforge.net/
    ARM Linux下UPnP使用(2012-06-24 18:42): http://blog.csdn.net/yanghao23/article/details/7684860
    UPnP编程(2012-11-22 15:17)(很详细很好): http://blog.csdn.net/crazyman2010/article/details/8212513
    编译与sample实验(2013-03-07 11:20): http://blog.csdn.net/shuaijinrong/article/details/8645668    




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值