问题标签 [ssdp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 无法使用 SSDP 接收正确的 UDP 数据包
我正在尝试将一个非常简单的 SSDP 功能实现到从这里获取的我的 android 应用程序中。
我的应用程序将一些包含相关 M-SEARCH 消息的 UDP 数据包发送到广播地址,没有任何问题。问题是,我应该从运行 UPNP 服务器的其他设备得到正确的响应。出于某种原因,我只收到了从我的 android 设备发送回来的完全相同的数据包。
MainActivity.java
SSDPSocket.java 实际完成 UDP 数据包传输的地方
SSDPSearchMsg.java 用于构建 SSDP 广播字符串(可能与我遇到的问题无关,但以防万一)
SSDPConstants.java
我还确保清单包含相关权限:
我正在实际设备上测试应用程序,而不是在模拟器上。
任何援助将不胜感激。
根据评论编辑:
多播本身应该可以正常工作。我下载了一个名为 BubbleUPNP 的应用程序来测试 SSDP 功能。果然,wireshark 正确地捕获了所有从手机发送到 SSDP 协议中的广播地址的消息:
和回应
所以,是的,毫无疑问,这是一个实施问题。设备没有问题。
android - 在 Android 上,如何让 upnp mr 响应我的 m-search?
我正在使用安卓系统。并试图在同一个局域网中找到媒体渲染器。我将 m-search 发送到 239.255.255.250:1900。我捕获了我发送的消息如下:
但是,在那里工作的先生没有回应。
javascript - 如何检测本地网络上的服务器主机:端口?
我确信有更好的方式来描述我所面临的挑战,但希望这会足够清楚。
我有一台在局域网内的随机主机+端口上运行的服务器,我想知道该主机名和端口,或者至少是随机端口,以便我的(Web)客户端可以连接到正确的 URL。
这个特定的服务器恰好运行并响应 M-SEARCH (SSDP) 查询,但我认为您不能从网页/javascript 查询。
我不介意使用通用(云)服务器来帮助完成此过程。
编辑:想一想,我不知道我在想什么 UPNP 等,我的“客户端”只有一个浏览器和一个 URL 来提供,所以在他访问我的服务器之前我无法运行 JavaScript:端口。也许解决方案必须使用云上的某种众所周知的地址或主机上的知名端口。
networking - 为什么在 SSDP 中需要 NOTIFY?
我希望有人能澄清我对upnp/ssdp协议使用的 NOTIFY 和 M-SEARCH 消息的目的背后的困惑。
我的理解是,当设备想要向其他支持 UPNP 的设备宣传自己时会发送 NOTIFY 消息,而当设备想要了解其他支持 UPNP 的设备时会发送 M-SEARCH 消息。
那么,如果我的设备通过广播地址 (for SSDP,239.255.255.250) 收到来自其他设备的 M-SEARCH 消息,我会以正确的格式回复它:
这是我的问题。为什么NOTIFY消息首先存在?由于您在看到 M-SEARCH 后将设备信息发送回请求的设备,因此在我看来,除非被要求,否则没有必要提前使用 NOTIFY 宣传设备信息,因为其他收听广告的设备可能或在发送 NOTIFY 时可能不可用。
换句话说,我想知道 NOTIFY 与 M-SEARCH 相比的确切目的,最好是使用它的实际示例。
还是我完全误解了这个协议?
android - 使用 android 智能手机和其他设备进行服务发现
在我的环境中,我有一部 Android 智能手机和一些其他设备。其他设备正在运行linux。所有设备都通过 Wifi 连接到本地网络。现在我想让智能手机识别和发现网络中的其他设备,所以我需要实现某种服务发现。在其他设备上应该不需要用户交互。之后,两个设备应该能够相互配对。
我读过 Android 支持Network Service Discovery (NSD)。这是一件好事,但这似乎只适用于 Android 设备,对吧?就我而言,其他设备是运行嵌入式 linux 的自定义硬件。编程语言也不相同。其他设备上的应用程序是使用 C++ 实现的。
我还阅读了有关简单服务发现协议 (SSDP)的信息。我想这应该以独立于平台的方式工作,对吧?您能否简单解释一下如何使用 SSDP 实现这一点?
你会推荐 SSDP 来实现服务发现吗?有没有适用于 android 和 c++ 的有用库?
或者你能建议其他方法来实现我想要做的事情吗?
问候
c++ - Linux 上的简单服务发现
我正在尝试在我的网络中实现某种服务发现。特别是我希望我的 linux 驱动的设备被 Android 应用程序所破坏。我遇到了ssdp,这似乎适合我的任务。我正在寻找一些 c++ 的 ssdp 库,但没有找到。我必须自己实施吗?如果是这样,您能否简要概述一下如何做到这一点?还是只是通过 UDP 发送 NOTIFY 消息,这可以在没有库的情况下完成!
问候
android - Android如何实现ssdp alive接收功能
我正在尝试实现一个功能来监听门 1900 并捕获活动消息和设备 ip,我尝试使用我找到的一些库,但我的应用程序在尝试启动应用程序时一直崩溃。
这是我的主要功能
其余的 lib 代码
linux - 如何在 Linux 上的命令行(控制台模式)中列出 upnp 服务器/渲染器?
我想以控制台模式列出本地网络上可用的 upnp/dlna 渲染器。
我可以用 gupnp 做到这一点,但不能在控制台模式下
c# - SSDP Search in Windows Phone 8
I'm new at SSDP/UPNP/Sockets and all that jazz. I'm playing around with it a bit and I just want to see what a generic SSDP search on my network will bring up.
Using this SSDP Sniffer app, I get a lot of results so I'm attempting to recreate this.
I'm using the following code, which I've found various versions of, but all the tweaking I do doesn't appear to bring back any results. I pretty much at a loss here and would appreciate any guidance.
thanks!
soap - UPnP POST 到打印机数据接收器 URI
我还有其他一些帖子,我一直在将数据发布到 UPnP 打印机。基本上从头开始创建一个控制点(这仍然是 POC,我将在多种设备类型上实现,所以我试图首先获得基本的理解)。到目前为止,我能够发现打印机、请求打印作业并取回数据接收器 url 以发布要打印的内容。此时我尝试使用简单的 xhtml 数据进行 POST,但请求似乎每次都超时,但出现以下异常:
如果我在浏览器中点击 url,我会回来HTTP 405 Method Not Allowed
我想知道服务器是否由于数据错误而忽略了帖子,或者我缺少标题或类似的东西。
我已经浏览了 upnp.org 上有关 Printer Basic 服务的文档,以及 SOAP 1.1 UPnP Profile,这两者都极大地帮助了我。
有人有什么想法吗?
这是我的 xhtml 的副本:
我正在使用 C# 创建和发送HttpWebRequest
. 这是执行此操作的代码(我有几个变体,另一个使用WebClient
)
来自提琴手的原始帖子数据