【问题标题】:How can i send a SSDP / UPNP packet and get response?我如何发送 SSDP / UPNP 数据包并获得响应?
【发布时间】:2014-07-06 13:14:31
【问题描述】:

大家好,我正在做一个项目。

基本上我需要能够检索 SSDP 数据包的结果来找到我的 Pioneer VSX AVR 的 IP。它响应 SSDP 与官方应用程序一起使用,我正在开发一个 Windows 应用程序来做同样的事情。

来源:http://github.com/cyanlabs/vsxremote

到目前为止我所知道的......

  1. 数据包需要发送到ip 239.255.255.250

  2. 端口为 1900,AVR 在 23/8102 上响应 Telnet/TCP

  3. description.xml 位于 192.168.0.111:8080/description.xml

  4. 我试图弄清楚这段代码,但它似乎不起作用。 http://social.msdn.microsoft.com/Forums/vstudio/en-US/d7f53b79-80dc-46f7-96dd-fc3b7a28f8d4

  5. 我需要发送的请求是

    M-SEARCH * HTTP/1.1
    HOST: 239.255.255.250:1900
    ST:urn:schemas-upnp-org:device:MediaRenderer:1
    MAN: "ssdp:discover"
    MX: 1
    

任何帮助都会很棒。谢谢。

【问题讨论】:

  • 我应该提一下,我已经对实际的 telnet 代码进行了排序,我只需要整理 SSDP 请求/响应。
  • 那么...里面应该有问题吗?如果您需要第 4 项的帮助,则需要提供比“似乎没有用”更多的细节。
  • 那么问题显然是“我如何发送 SSDP / UPNP 数据包并获得响应?”和标题一样。
  • 我已经研究了几个小时,但找不到任何信息来帮助我解决这个问题,该代码根本不起作用......它没有返回任何内容。
  • "doesn't return anything" 是有用的信息,您应该将其包含在问题中。我还建议您与wireshark 检查A)您的多播数据包确实已发送并且B)响应实际到达。在实际帖子中包含一个最小示例将是一种礼貌:我不知道您指的是三个不同版本中的哪一个(在您拥有的两个不同链接中)。我唯一的评论是回复可能很短:ReceiveFrom() 可能会阻塞等待更多数据。

标签: vb.net sockets tcp upnp ssdp


【解决方案1】:

基于wireshark输出和链接代码(两者都应该在帖子中):

CONTENT-LENGTH 标头不应是 M-SEARCH 消息的一部分。最后,您还缺少一个空行 (vbCrLf) - 这是 CONTENT-LENGTH 行末尾缺少的 CrLf 的补充。换句话说,包括最后一行在内的每一行都必须以“\r\n”结尾,然后最后必须有一个额外的“\r\n”。省略空行通常会导致设备忽略您的消息(因为他们无法真正知道它是否完整)。

有关 SSDP 的实际规范,请参阅 UPnP Device Architecture 第 1 部分。

【讨论】:

  • 感谢您的回复,但首先“CONTENT-LENGTH”不是我的信息的一部分,这只是wireshark 显示的内容。丢失的 CrLf 也是如此。我将添加空行,看看会发生什么。
  • 如果您发布了您实际使用的代码,这将真的有所帮助,这样就不会涉及猜测:您链接到的代码显然具有“CONTENT-LENGTH:0”在里面。
  • 谢谢我让它工作了:),解析这些数据的最简单方法是什么? puu.sh/a2GOE/f046bb0380.png HTTP/1.1 200 OK CACHE-CONTROL: max-age=1800 EXT: LOCATION: 192.168.0.111:8080/description.xml SERVER: KnOS/3.2 UPnP/1.0 DMP/3.5 ST: urn:schemas-upnp-org:service:AVTransport:1 USN: uuid:5F9EC1B3-ED59-79BB-4530-745e1c3206eb::urn:schemas-upnp-org:service:AVTransport:1 我只需要从 LOCATION 中提取 IP。
猜你喜欢
  • 1970-01-01
  • 2015-06-02
  • 2011-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多