0

我有一个 RaspberryPi 使用动态 IP 地址通过 WiFi 连接到我的家庭网络。然后我的 iPhone 也通过 WiFi 连接到同一个网络。Pi 有一个轻量级的 c++ HTTP 服务器在其上运行,可以执行命令。我现在想编写一个 Objective-C 应用程序,它可以在网络上找到 Pi,而不管它的 ip 地址,并向它发送命令。因此,通用即插即用似乎是合乎逻辑的解决方案——但我在 Google 上找到的所有内容都是处理媒体播放器和流式音频/视频内容。

我只想让 Pi 以某种方式简单地在我的网络上广播 - “嘿,我是 RasberryPi,我的 IP 地址是 192.168.0.5!”。

有人可以建议这个问题的软件包或解决方案吗?谢谢!

4

1 回答 1

1

对于 RPi 方面,我会建议GUPnP,只要你能满足依赖要求。这是一个非常模块化的框架,因此如果您不需要它们,则无需加载或使用任何与多媒体相关的东西。它基于 glib 和 libsoup,允许您相当轻松地定义和实现您自己的 UPnP 服务。看一下BinaryLight 示例:它实现了一个 BinaryLight 设备,该设备包含一个 SwitchPower 服务,该服务具有多种方法和两个状态变量(属性)。如果你从那开始,你应该能够开始跑步。有关于如何编写服务器的文档。

您将需要/想要的组件:

  • libgssdp,处理发现,由 gupnp 使用
  • libgupnp,实际的 upnp 实现,由您的应用程序使用
  • 依赖项(glib、gio、gmodule、libsoup、libxml)

也可能用于测试(这在桌面 linux 机器上,因为它需要 gtk):

  • gupnp-tools,包含 gupnp-universal-cp

编辑:如果您真的不想实现任何 UPnP 功能,您可以只使用 GSSDP 进行 IP 发现。这可能非常简单:参见test-publish示例。

于 2013-10-23T17:17:00.620 回答