我在基于ARM的媒体处理器中工作。我需要为设备实现upnp。只需要广告,即设备发现,因此可以找到设备的IP地址。我能够实现广告,但是当设备的IP发生变化时我失败了。有没有办法可以检测到IP的变化并改变设备的广告。提前致谢
答案 0 :(得分:0)
UPnP'中没有任何内容。这将为您解决这个问题 - 这是有道理的,因为UPnP是一种媒体共享协议,并且发现当前的IP与媒体共享以及完全与操作系统特定的内容完全无关。
如果您使用的是体面的UPnP库,那么我希望该库能够为您提供这种功能。但是既然你说你自己正在实施UPnP ......那么你就可以自己实现所有这些。
我的第一个建议是不要自己实施UPnP 。它可能看起来很简单,但实际上并非如此。找到发明轮子的图书馆"为你而专心于实际解决你试图解决的问题。我知道将库加入嵌入式设备并不容易,但我可以保证以一半的方式实现UPnP是非常困难的。
假设第一个建议不可行:看看GUPnP如何处理这个问题:Connman,NetworkManager和通用Linux都有ContextManagers(处理网络上下文)。后者可能是一个有用的起点:https://git.gnome.org/browse/gupnp/tree/libgupnp/gupnp-linux-context-manager.c:" context-available"网络接口启动时发出信号。请注意,该代码是根据LGPL许可的。