我正在广播这样的发现信息:
M-SEARCH * HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\nMAN: \"ssdp:discover\"\r\nMX: 10\r\nST: ssdp:all\r\n我通常会从我的DLNA设备上得到回应。但有时我不知道。
更大的问题是,如果我收到了一次回复,并且我再次广播了一条发现消息,我就不会在第二次或以后的时候从我的设备中得到一个响应。
我阅读文档的方式是,设备需要响应这些广播消息。
我有两个问题:
发布于 2013-10-15 16:08:31
我在compliance中看到了几个可能的问题(或者在任何情况下都不是100%的遵从性):
关于不接收回复:当然,丢失消息的原因( bug)是有原因的,但是请注意,您绝对不能信任消息传递,因为这是UDP而不是TCP。这就是为什么即使按照规范,每个M-搜索也应该发送几次。
如果我没记错的话,UPnP规范含糊地建议“数百毫秒”作为发现消息的最小重复频率。
以上所有内容的来源都是UPNP arch文档,或者更确切地说是我对它的记忆。我几乎百分之百肯定DLNA对这些东西有额外的要求,但我记不起我头顶上的那些东西.不过,这些可能的额外需求可能不会使设备对您没有响应。
编辑:哦,见鬼,我打开了DLNA规范,所以为什么不打开呢?你应该发送超过一个M-搜索。不应超过10M-搜索每200毫秒期间。原件和复制件应在10秒钟内发送。您应该等待MX秒的回复,再等待任何网络延迟的一两秒钟。
UPnP设备体系结构文档
(前称DCP框架)
规格:
进一步文件:
https://stackoverflow.com/questions/19385303
复制相似问题