【问题标题】:Handling IP changes in uPnP device处理 uPnP 设备中的 IP 更改
【发布时间】:2015-02-15 11:46:42
【问题描述】:

我正在使用基于 ARM 的媒体处理器。我需要为设备实现 upnp。只需要广告,即设备发现,因此可以找到设备的 IP 地址。我能够实现广告,但是当设备的 IP 更改时我失败了。有没有办法可以检测到 IP 的变化并更改设备的广告。在此先感谢

【问题讨论】:

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

标签: ip arm upnp


【解决方案1】:

“在 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 许可。

【讨论】:

    猜你喜欢
    • 2013-06-29
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多