首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的三星电视不会响应一些UPNP请求来描述它的服务

我的三星电视不会响应一些UPNP请求来描述它的服务
EN

Stack Overflow用户
提问于 2015-08-10 22:19:13
回答 2查看 4.4K关注 0票数 1

我一直在阅读这个UPNP,它说当一个设备进入网络时,它会发送一个SSDP消息及其位置,这个地址将描述它的服务。当我打开我的三星智能电视时,我会收到6或7条SSDP消息。其中之一是:

代码语言:javascript
运行
复制
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消息中的位置时,我得到以下信息:

代码语言:javascript
运行
复制
<?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消息:

代码语言:javascript
运行
复制
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_时,响应是:

代码语言:javascript
运行
复制
<?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的描述?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-11 01:43:17

根据UPnP规范,

来自SSDPSSDP被称为DeviceDescription URL,因此您可以通过HTTP获得DeviceDescription

而URL在

代码语言:javascript
运行
复制
<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

票数 2
EN

Stack Overflow用户

发布于 2016-04-05 22:43:31

试试看。也许它会证明是有用的。它是智能视图窗口应用程序的反编译源代码

https://drive.google.com/open?id=0B4rFn8xXaiKsZ3lCNFBpcklDRE0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31930126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档