2012-11-01 25 views
0

我正在使用Cling Java庫來實現UPnP控制點。Cling UPnP:放置阻止呼叫以搜索設備

native controlpoint.search()函數是非阻塞的,並通過回調機制報告設備。

有沒有辦法阻止呼叫搜索,當找到設備時返回? 或者我可以等到設備被找到的狀態標誌?

(這是微不足道的實施這個我自己,但我想用本機API儘可能)

+0

對於一個通用的方法,看看http://stackoverflow.com/q/4639853/116509,但帕維爾的答案是重要的 – artbristol

回答

3

即使API將允許它(不),這將是非常不明智的事情。 UPnP中的設備發現(又名搜索)本質上是異步的。搜索以廣播開始,您作爲控制點無法知道設備何時響應,會有多少響應,以及是否有響應。在UPnP發現中沒有這樣的事件,因爲「現在我發現所有設備,並且不會再有任何更多」 - 這正是您需要具備的功能,才能實現可靠的阻止等待。最好的妥協可能是阻止等待超時 - 但是你會設置什麼超時?太短意味着某些設備可能無法及時響應(您私下決定的時間),太長意味着即使沒有更多設備可以響應,您仍然在等待 - 但由於設計了UPnP ad-hoc網絡,您根本無法知道有多少設備在那裏。

您可能需要解釋爲什麼阻止式搜索對您來說如此重要。