我正在使用curl库编写一个upnp应用程序。为了获得我的服务/服务器,我做了这样的事情。
public void searchForServers( ) {
/*
do stuff....
*/
// Search for new devices
getUpnpService().getControlPoint().search(new UDADeviceTypeHeader( new UDADeviceType("MyFantasticService")));
}
我曾期望注册表只应包含"MyFantasticService"的实例,但事实证明,许多不同的upnp设备似乎回答我的呼叫....
我误解了什么吗?在手册中似乎很清楚如何做…我自己添加了一个过滤器,只允许有效的服务通过注册表
"受限"搜索意味着您希望匹配设备回答。但任何设备都可以在任何时候自由回答或实际上"被发现",这就是UPnP的工作原理。在理想情况下,带有限制的搜索应该会加速发现(实际上没有设备制造商关心)。如果你只想处理一个特定的服务,在RegistryListener
中过滤deviceDiscovered
等回调方法