在uPnP设备中处理IP变化

在uPnP设备中处理IP变化,ip,arm,upnp,Ip,Arm,Upnp,我在基于ARM的媒体处理器中工作。我需要为设备实现upnp。只需要广告,即设备发现,即可找到设备的IP地址。我能够实现广告,但当设备的IP发生变化时,我失败了。是否有一种方法可以检测到IP的变化并改变设备的广告。提前感谢在UPnP中没有任何东西可以为您解决这个问题——这是有意义的,因为UPnP是一种媒体共享协议,找到当前的IP与媒体共享无关,而且完全是操作系统特有的 如果您使用的是一个像样的UPnP库,那么我希望该库能够为您提供这种功能。但既然你说你自己在实现UPnP。。。好吧,然后你就可以自己

我在基于ARM的媒体处理器中工作。我需要为设备实现upnp。只需要广告,即设备发现,即可找到设备的IP地址。我能够实现广告,但当设备的IP发生变化时,我失败了。是否有一种方法可以检测到IP的变化并改变设备的广告。提前感谢

在UPnP中没有任何东西可以为您解决这个问题——这是有意义的,因为UPnP是一种媒体共享协议,找到当前的IP与媒体共享无关,而且完全是操作系统特有的

如果您使用的是一个像样的UPnP库,那么我希望该库能够为您提供这种功能。但既然你说你自己在实现UPnP。。。好吧,然后你就可以自己实现所有这些了

我的第一个建议是不要自己实现UPnP。这看起来可能很简单,但事实并非如此。找到那些为你“发明轮子”的图书馆,并专注于实际解决你试图解决的问题。我知道将库放到嵌入式设备上并不总是容易的,但我可以保证,即使是以半途而废的方式实现UPnP也是相当困难的


假设第一个建议不可行:看看如何处理这个问题:Connman、NetworkManager和通用Linux都有ContextManager(处理网络上下文)。后者可能是一个有用的起点::“上下文可用”信号是在网络接口启动时发出的。请注意,该代码是根据LGPL授权的。

您要求的功能必须是特定于操作系统和编程语言的,请指定它们。它基于ti的EZSDK,并且希望不熟悉EZSDK,但在大多数网络化linux安装中,我希望找到某种连接管理器(例如Connman或NetworkManager)。他们为这类事情提供API。如果您的系统没有连接管理器,您可能必须开始定期轮询您当前使用的任何方法来查找您的IP地址。感谢您的回复。我希望在uPnP中有什么方法可以做到这一点?