我試圖在我的網絡中實現某種服務發現。特別是我希望我的Linux驅動設備被Android應用程序所驅散。我遇到了ssdp,這似乎適合我的任務。我正在爲C++尋找一些ssdp庫,但沒有找到任何。 我必須自己實施嗎?如果是這樣,你能簡要概述一下如何做到這一點嗎?或者僅僅是通過UDP發送NOTIFY消息,這可以在沒有庫的情況下完成!Linux上的簡單服務發現
關於
我試圖在我的網絡中實現某種服務發現。特別是我希望我的Linux驅動設備被Android應用程序所驅散。我遇到了ssdp,這似乎適合我的任務。我正在爲C++尋找一些ssdp庫,但沒有找到任何。 我必須自己實施嗎?如果是這樣,你能簡要概述一下如何做到這一點嗎?或者僅僅是通過UDP發送NOTIFY消息,這可以在沒有庫的情況下完成!Linux上的簡單服務發現
關於
您鏈接到的wiki文章提到UPnP作爲SSDP的後繼者。也許libupnp有你所需要的? http://pupnp.sourceforge.net/
除非使用C庫違反你的宗教信仰,否則可以使用GSSDP:它是一個經過良好測試的SSDP實現(它是GUPnP堆棧的一部分),僅依賴於glib,gobject和libsoup。請參閱reference manual和source code。
Linux的mDNS/DNS-SD事實上的實現是Avahi。它提供各種bindings for developers。如果使用C或C++進行開發,您應該看看這裏:http://avahi.org/download/doxygen/
有三種用於集成的編程API:avahi-core,avahi-client和avahi-gobject。 avahi-core是可嵌入的庫,並且mDNS的實現支持多個子網之間的反射。
由於死鏈接的風險,提供僅鏈接答案是不夠的。請提供您鏈接到的內容摘要,並感謝您爲SO社區做出貢獻。 –
感謝您的解釋,這很有道理。但我不知道還有什麼可寫的,因爲我正在指導服務自動發現的實施者使用Avahi API。引用一段代碼也許? – Fox
我做了一些更改以添加基本摘要,我想您可以通過展示示例代碼片段來嘗試一些努力。 –
事實上,我不會新聞整個upnp堆棧,但只是一個簡單的發現我的設備的機制 – Moonlit
你有這個倒退。 SSDP是UPnP的後繼者(和超集)。 – hyperkinetic