2013-10-23 103 views
0

我有一個RaspberryPi通過WiFi連接到我的家庭網絡,具有動態ip地址。然後我的iPhone也通過WiFi連接到同一個網絡。 Pi有一個輕量級的C++ HTTP服務器,它可以執行命令。我現在想編寫一個可以在網絡上找到Pi的Objective-C應用程序,而不管它的IP地址如何,併發送命令。因此,通用即插即用似乎是合乎邏輯的解決方案 - 但我在Google上找到的所有內容都與媒體播放器和流式音頻/視頻內容相關。簡單的通用即插即用(uPNP)在網絡上查找樹莓派

我只想讓Pi以某種方式直接在我的網絡上廣播 - 「嘿,我是RasberryPi,我的IP地址是192.168.0.5!」。

有人可以請建議一個包或解決這個問題?謝謝!

回答

1

對於RPi方面,只要您能滿足依賴性要求,我會建議GUPnP。這是一個非常模塊化的框架,所以如果你不需要它們,你不需要加載或使用任何與多媒體相關的東西。它基於glib和libsoup,可以讓您輕鬆定義和實施自己的UPnP服務。看看BinaryLight example:它實現了一個BinaryLight設備,其中包含一個帶有多個方法和兩個狀態變量(屬性)的SwitchPower服務。如果你從此開始,你應該能夠在地面上運行。有關於how to write a server的文檔。

你將需要/組件要:

  • libgssdp,處理髮現,通過gupnp使用
  • libgupnp,實際實現UPnP功能,使用你的應用程序
  • 的依賴關係(油腔滑調, GIO,gmodule,libsoup,libxml的)

還可能用於測試(這是一個桌面Linux機器上,因爲它需要GTK):

  • gupnp工具,包含gupnp萬能-CP

編輯:如果你真的不想要實現任何UPnP功能,這是可能的,你可以只使用GSSDP的IP發現。這可能非常簡單:請參閱test-publish示例。

+0

謝謝我用gssdp去了! – PhilBot