【问题标题】:Cling UPnP: Place blocking call for searching devicesCling UPnP:为搜索设备发出阻塞调用
【发布时间】:2012-11-01 05:21:43
【问题描述】:

我正在使用Cling Java 库来实现一个 UPnP 控制点。

原生 controlpoint.search() 函数是非阻塞的,通过回调机制上报设备。

有没有办法对搜索进行阻塞调用,当找到设备时返回? 或者我可以等待找到设备的状态标志?

(我自己实现这个很简单,但我想尽可能使用原生API)

【问题讨论】:

标签: java upnp


【解决方案1】:

即使 API 允许(它不允许),这也是非常不明智的做法。 UPnP 中的设备发现(又称搜索)本质上是异步的。搜索从广播开始,作为控制点的您无法知道设备何时会响应、会有多少响应以及是否有响应。在 UPnP 发现中没有这样的事件,例如“现在我找到了所有设备,并且不会再有” - 这正是您需要拥有的才能进行可靠的阻塞等待。最好的折衷方案可能是带有超时的阻塞等待 - 但是您将设置什么超时?太短意味着某些设备可能无法及时响应(您的私人决定的时间),太长意味着即使没有更多设备响应您仍然会等待 - 但是由于 UPnP ad-hoc 网络的设计,您根本不知道有多少设备。

您可能需要解释为什么屏蔽搜索对您如此重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2016-10-19
    • 2021-03-03
    相关资源
    最近更新 更多