我已经实现了这个线程中给出的示例代码。它按承诺工作。不幸的是,它只会报告对 M-SEARCH 请求的直接响应,而不会报告其他内容。我正在寻找一种只收听 SSDP 广播的方法,以便捕获其他应用程序的搜索或通知广播。
我用 TIdUDPServer 尝试了各种配置,但都没有成功。我已经到了我认为这可能不可能的地步。
我在同一网络上的另一台计算机上运行启用了网络发现的 Win 8.1 和 MediaServer。防火墙打开或关闭没有任何区别。使用 Window 的 UPnP API 可以按预期工作,使用 UPnP 的应用程序正在正确检测 MediaServer 和其他 UPnP 设备。
Window 的内置 UPnP 服务是否在 239:255:255:250:1900 捕获这些广播并且不传递它们?我怎么能只听那些广播?