Искать только мои услуги
Я пишу приложение 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
,