DLNA协议流程分析

##############################################################
server -> multicast group(239.255.255.250:1900)

NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
CACHE-CONTROL: max-age=66
LOCATION: http://192.168.31.100:49152/description.xml
NT: upnp:rootdevice
NTS: ssdp:alive
SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13
USN: uuid:F7CA5454-3F48-4390-8009-243cef45cbab::upnp:rootdevice
##############################################################
server -> multicast group(239.255.255.250:1900)

NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
CACHE-CONTROL: max-age=66
LOCATION: http://192.168.31.100:49152/description.xml
NT: upnp:rootdevice
NTS: ssdp:alive
SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13
USN: uuid:F7CA5454-3F48-4390-8009-243cef45cbab::upnp:rootdevice
##############################################################
server -> multicast group(239.255.255.250:1900)

NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
CACHE-CONTROL: max-age=66
LOCATION: http://192.168.31.100:49152/description.xml
NT: upnp:rootdevice
NTS: ssdp:alive
SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13
USN: uuid:F7CA5454-3F48-4390-8009-243cef45cbab::upnp:rootdevice
##############################################################
client --> multicast group(239.255.255.250:1900):

M-SEARCH * HTTP/1.1
MX: 1
ST: upnp:rootdevice
MAN: "ssdp:discover"
User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0
Connection: close
Host: 239.255.255.250:1900

server --> multicast group(239.255.255.250:1900):

NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
CACHE-CONTROL: max-age=66
LOCATION: http://192.168.31.100:49152/description.xml
NT: upnp:rootdevice
NTS: ssdp:alive
SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13
USN: uuid:F7CA5454-3F48-4390-8009-243cef45cbab::upnp:rootdevice
##############################################################
client --> server(192.168.31.100:49152)

GET /description.xml HTTP/1.1
User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0
Host: 192.168.31.100:49152

server --> client:

HTTP/1.1 200 OK
CONTENT-LENGTH: 2607
CONTENT-TYPE: text/xml
DATE: Wed, 30 Oct 2019 10:20:15 GMT
LAST-MODIFIED: Wed, 30 Oct 2019 10:19:59 GMT
SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13
X-User-Agent: redsonic
CONNECTION: close

<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
<presentationURL>/</presentationURL>
<friendlyName>HappyCastK3</friendlyName>
<manufacturer>LEBO</manufacturer>
<manufacturerURL>http://www.hpplay.com.cn</manufacturerURL>
<modelDescription>Lebo Media Render</modelDescription>
<modelName>HappyCast</modelName>
<modelURL>http://www.hpplay.com.cn</modelURL>
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMR-1.50</dlna:X_DLNADOC>
<UDN>uuid:F7CA5454-3F48-4390-8009-243cef45cbab</UDN>
<UID>-1600790645331888621</UID>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
<serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>
<SCPDURL>/dlna/Render/AVTransport_scpd.xml</SCPDURL>
<controlURL>_urn:schemas-upnp-org:service:AVTransport_control</controlURL>
<eventSubURL>_urn:schemas-upnp-org:service:AVTransport_event</eventSubURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
<serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
<SCPDURL>/dlna/Render/ConnectionManager_scpd.xml</SCPDURL>
<controlURL>_urn:schemas-upnp-org:service:ConnectionManager_control</controlURL>
<eventSubURL>_urn:schemas-upnp-org:service:ConnectionManager_event</eventSubURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
<serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
<SCPDURL>/dlna/Render/RenderingControl_scpd.xml</SCPDURL>
<controlURL>_urn:schemas-upnp-org:service:RenderingControl_control</controlURL>
<eventSubURL>_urn:schemas-upnp-org:service:RenderingControl_event</eventSubURL>
</service>
</serviceList>
<av:X_RController_DeviceInfo xmlns:av="urn:mi-com:av">
<av:X_RController_Version>1.0</av:X_RController_Version>
<av:X_RController_ServiceList>
<av:X_RController_Service>
<av:X_RController_ServiceType>controller</av:X_RController_ServiceType>
<av:X_RController_ActionList_URL>http://192.168.31.100:6095/</av:X_RController_ActionList_URL>
</av:X_RController_Service>
<av:X_RController_Service>
<av:X_RController_ServiceType>data</av:X_RController_ServiceType>
<av:X_RController_ActionList_URL>http://api.tv.duokanbox.com/bolt/3party/</av:X_RController_ActionList_URL>
</av:X_RController_Service>
</av:X_RController_ServiceList>
</av:X_RController_DeviceInfo>
</device>
<URLBase>http://192.168.31.100:49152</URLBase>
</root>
##############################################################

GET /dlna/Render/AVTransport_scpd.xml HTTP/1.1
User-Agent: UPnP/1.0 IQIYIDLNA/iqiyidlna/NewDLNA/1.0
Host: 192.168.31.100:49152

HTTP/1.1 200 OK
CONTENT-LENGTH: 14868
CONTENT-TYPE: text/xml
DATE: Wed, 30 Oct 2019 10:20:16 GMT
LAST-MODIFIED: Thu, 01 Jan 1970 00:00:00 GMT
SERVER: Linux/3.4.0-g88fbc66, UPnP/1.0, Portable SDK for UPnP devices/1.6.13
X-User-Agent: redsonic
CONNECTION: close

<scpd>
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<actionList>
<action>
<name>GetCurrentTransportActions</name>
<argumentList>
<argument>
<name>InstanceID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
</argument>
<argument>
<name>Actions</name>
<direction>out</direction>
<relatedStateVariable>CurrentTransportActions</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetDeviceCapabilities</name>
<argumentList>
<argument>
<name>InstanceID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
</argument>
<argument>
<name>PlayMedia</name>
<direction>out</direction>
<relatedStateVariable>PossiblePlaybackStorageMedia</relatedStateVariable>
</argument>
<argument>
<name>RecMedia</name>
<direction>out</direction>
<relatedStateVariable>PossibleRecordStorageMedia</relatedStateVariable>
</argument>
<argument>
<name>RecQualityModes</name>
<direction>out</direction>
<relatedStateVariable>PossibleRecordQualityModes</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetMediaInfo</name>
<argumentList>
<argument>
<name>InstanceID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
</argument>
<argument>
<name>NrTracks</name>
<direction>out</direction>
<relatedStateVariable>NumberOfTracks</relatedStateVariable>
</argument>
<argument>
<name>MediaDuration</name>
<direction>out</direction>
<relatedStateVariable>CurrentMediaDuration</relatedStateVariable>
</argument>
<argument>
<name>CurrentURI</name>
<direction>out</direction>
<relatedStateVariable>AVTransportURI</relatedStateVariable>
</argument>
<argument>
<name>CurrentURIMetaData</name>
<direction>out</direction>
<relatedStateVariable>AVTransportURIMetaData</relatedStateVariable>
</argument>
<argument>
<name>NextURI</name>
<direction>out</direction>
<relatedStateVariable>NextAVTransportURI</relatedStateVariable>
</argument>
<argument>
<name>NextURIMetaData</name>
<direction>out</direction>
<relatedStateVariable>NextAVTransportURIMetaData</relatedStateVariable>
</argument>
<argument>
<name>PlayMedium</name>
<direction>out</direction>
<relatedStateVariable>PlaybackStorageMedium</relatedStateVariable>
</argument>
<argument>
<name>RecordMedium</name>
<direction>out</direction>
<relatedStateVariable>RecordStorageMedium</relatedStateVariable>
</argument>
<argument>
<name>WriteStatus</name>
<direction>out</direction>
<relatedStateVariable>RecordMediumWriteStatus</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetPositionInfo</name>
<argumentList>
<argument>
<name>InstanceID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
</argument>
<argument>
<name>Track</name>
<direction>out</direction>
<relatedStateVariable>CurrentTrack</relatedStateVariable>
</argument>
<argument>
<name>TrackDuration</name>
<direction>out</direction>
<relatedStateVariable>CurrentTrackDuration</relatedStateVariable>
</argument>
<argument>
<name>TrackMetaData</name>
<direction>out</direction>
<relatedStateVariable>CurrentTrackMetaData</relatedStateVariable>
</argument>
<argument>
<name>TrackURI</name>
<direction>out</direction>
<relatedStateVariable>CurrentTrackURI</relatedStateVariable>
</argument>
<argument>
<name>RelTime</name>
<direction>out</direction>
<relatedStateVariable>RelativeTimePosition</relatedStateVariable>
</argument>
<argument>
<name>AbsTime</name>
<direction>out</direction>
<relatedStateVariable>AbsoluteTimePosition</relatedStateVariable>
</argument>
<argument>
<name>RelCount</name>
<direction>out</direction>
<relatedStateVariable>RelativeCounterPosition</relatedStateVariable>
</argument>
<argument>
<name>AbsCount</name>
<direction>out</direction>
<relatedStateVariable>AbsoluteCounterPosition</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetTransportInfo</name>
<argumentList>
<argument>
<name>InstanceID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
</argument>
<argument>
<name>CurrentTransportState</name>
<direction>out</direction>
<relatedStateVariable>TransportState</relatedStateVariable>
</argument>
<argument>
<name>CurrentTransportStatus</name>
<direction>out</direction>
<relatedStateVariable>TransportStatus</relatedStateVariable>
</argument>
<argument>
<name>CurrentSpeed</name>
<direction>out</direction>
<relatedStateVariable>TransportPlaySpeed</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetTransportSettings</name>
<argumentList>
<argument>
<name>InstanceID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
</argument>
<argument>
<name>PlayMode</name>
<direction>out</direction>
<relatedStateVariable>CurrentPlayMode</relatedStateVariable>
</argument>
<argument>
<name>RecQualityMode</name>
<direction>out</direction>
<relatedStateVariable>CurrentRecordQualityMode</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>Next</name>
<argumentList>
<argument>
<name>InstanceID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>Pause</name>
<argumentList>
<argument>
<name>InstanceID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>Play</name>
<argumentList>
<argument>
<name>InstanceID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
</argument>
<argument>
<name>Speed</name>
<direction>in</direction>
<relatedStateVariable>TransportPlaySpeed</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>Previous</name>
<argumentList>
<argument>
<name>InstanceID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_InstanceID</relatedStateVariable>
</argument>
</argumentList>
<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值