Искать только мои услуги

Я пишу приложение UPNP с использованием библиотеки Cling. Чтобы получить мой Сервис / Сервер, я делаю что-то вроде этого.

public void searchForServers( ) {

    /*
        do stuff....
     */

    // Search for new devices
    getUpnpService().getControlPoint().search(new UDADeviceTypeHeader( new UDADeviceType("MyFantasticService")));
}

Я ожидал, что Реестр должен содержать только экземпляры "MyFantasticService", но оказывается, что много разных устройств upnp, кажется, отвечают на мой вызов....

Я что-то здесь неправильно понял? Кажется довольно ясно, как это сделать в руководстве..

2 ответа

Решение

Добавлен мой собственный фильтр, чтобы пропустить в реестр только действительные сервисы.

"Ограниченный" поиск означает, что вы хотите, чтобы соответствующие устройства отвечали. Но любое устройство может ответить или фактически "быть обнаруженным" в любое время, так работает UPnP. Предполагается, что поиск с ограничением ускоряет поиск, в идеале (на практике никому из производителей устройств это не нужно). Если вы хотите работать только с определенным сервисом, отфильтруйте deviceDiscovered и т.д. методы обратного вызова в RegistryListener,

Другие вопросы по тегам