我一直在阅读这个UPNP,它说当一个设备进入网络时,它会发送一个SSDP消息及其位置,这个地址将描述它的服务。当我打开我的三星智能电视时,我会收到6或7条SSDP消息。其中之一是:
NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
CACHE-CONTROL: max-age=1800
LOCATION: http://192.168.1.107:7676/smp_7_
NT: upnp:rootdevice
NTS: ssdp:alive
SERVER: SHP, UPnP/1.0, Samsung UPnP SDK/1.0
USN: uuid:uuid_here::upnp:rootdevice因此,当我试图连接到SSDP消息中的位置时,我得到以下信息:
<?xml version="1.0"?>
<root xmlns='urn:schemas-upnp-org:device-1-0' xmlns:sec='http://www.sec.co.kr/dlna' xmlns:dlna='urn:schemas-dlna-org:device-1-0'>
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<deviceType>urn:dial-multiscreen-org:device:dialreceiver:1</deviceType>
<friendlyName>[TV]Samsung LED40</friendlyName>
<manufacturer>Samsung Electronics</manufacturer>
<manufacturerURL>http://www.samsung.com/sec</manufacturerURL>
<modelDescription>Samsung TV NS</modelDescription>
<modelName>UN40HU7000</modelName>
<modelNumber>1.0</modelNumber>
<modelURL>http://www.samsung.com/sec</modelURL>
<serialNumber>serialNumberHere</serialNumber>
<UDN>uuid:uuid_here</UDN>
<sec:deviceID>EXCNHA5ILPT66</sec:deviceID>
<sec:ProductCap>Resolution:1920X1080,Y2014</sec:ProductCap>
<serviceList>
<service>
<serviceType>urn:dial-multiscreen-org:service:dial:1</serviceType>
<serviceId>urn:dial-multiscreen-org:serviceId:dial</serviceId>
<controlURL>/smp_9_</controlURL>
<eventSubURL>/smp_10_</eventSubURL>
<SCPDURL>/smp_8_</SCPDURL>
</service>
</serviceList>
<sec:Capabilities>
<sec:Capability name='samsung:multiscreen:1' port='8001' location='/ms/1.0/'></sec:Capability>
</sec:Capabilities>
</device>
</root>UPNP说,我必须在上面描述的服务中连接到controlURL,但是当我得到_时,我没有得到响应。它根本没有回应。我认为这与目前尚未激活的服务有关,但例如,这个职位教授如何向RenderingControl1服务发送SOAP消息以更改卷。当我用电视看东西的时候,这个服务应该是活动的。因此,我尝试响应与RenderingControl1相关的SSDP消息:
NOTIFY * HTTP/1.1
HOST: 239.255.255.250:1900
CACHE-CONTROL: max-age=1800
LOCATION: http://192.168.1.107:7676/smp_3_
NT: urn:samsung.com:device:RemoteControlReceiver:1
NTS: ssdp:alive
SERVER: SHP, UPnP/1.0, Samsung UPnP SDK/1.0
USN: uuid:uuid_here::urn:samsung.com:device:RemoteControlReceiver:1当我GET 192.168.1.107:7676/smp_3_时,响应是:
<?xml version="1.0"?>
<root xmlns='urn:schemas-upnp-org:device-1-0' xmlns:sec='http://www.sec.co.kr/dlna' xmlns:dlna='urn:schemas-dlna-org:device-1-0'>
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<deviceType>urn:samsung.com:device:RemoteControlReceiver:1</deviceType>
<friendlyName>[TV]Samsung LED40</friendlyName>
<manufacturer>Samsung Electronics</manufacturer>
<manufacturerURL>http://www.samsung.com/sec</manufacturerURL>
<modelDescription>Samsung TV RCR</modelDescription>
<modelName>UN40HU7000</modelName>
<modelNumber>1.0</modelNumber>
<modelURL>http://www.samsung.com/sec</modelURL>
<serialNumber>serialNumberHere</serialNumber>
<UDN>uuid:uuid_here</UDN>
<sec:deviceID>EXCNHA5ILPT66</sec:deviceID>
<sec:ProductCap>Resolution:1920X1080,ImageZoom,ImageRotate,Y2014,ENC</sec:ProductCap>
<serviceList>
<service>
<serviceType>urn:samsung.com:service:MultiScreenService:1</serviceType>
<serviceId>urn:samsung.com:serviceId:MultiScreenService</serviceId>
<controlURL>/smp_5_</controlURL>
<eventSubURL>/smp_6_</eventSubURL>
<SCPDURL>/smp_4_</SCPDURL>
</service>
</serviceList>
<sec:Capabilities>
<sec:Capability name='samsung:multiscreen:1' port='8001' location='/ms/1.0/'></sec:Capability>
</sec:Capabilities>
</device>
</root>但是当我尝试GET 192.168.1.107:7676/smp_5_的时候,我也没有得到任何回应。我还尝试了GET 192.168.1.107:7676/smp_3_/smp_5_,因为/smp_5_是我收到的坏请求的/smp_3_的“子集”,这表明我的电视忽略了/smp_5_,但明确地告诉我/smp_3_/smp_5_是错误的,所以/smp_3_相当严格,但我不知道发生了什么。根据UPNP,GET 192.168.1.107:7676/smp_5_应该检索服务的描述……如何获得RenderingControl的描述?
发布于 2015-08-11 01:43:17
根据UPnP规范,
来自SSDP的SSDP被称为DeviceDescription URL,因此您可以通过HTTP获得DeviceDescription
而URL在
<controlURL>/smp_9_</controlURL>
<eventSubURL>/smp_10_</eventSubURL>
<SCPDURL>/smp_8_</SCPDURL>http://192.168.1.107:7676/smp_9_是控制URL,您需要使用HTTP和必要的参数执行SOAP操作。
http://192.168.1.107:7676/smp_10_是事件订阅URL,但是您需要使用必要的参数(而不是GET )来执行SUBSCRIBE。
http://192.168.1.107:7676/smp_8_是XML,您可以执行GET并获取ServiceDescription文件。
更多信息见:http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf
发布于 2016-04-05 22:43:31
试试看。也许它会证明是有用的。它是智能视图窗口应用程序的反编译源代码
https://drive.google.com/open?id=0B4rFn8xXaiKsZ3lCNFBpcklDRE0
https://stackoverflow.com/questions/31930126
复制相似问题