Я пытаюсь внедрить какое-то обнаружение службы в моей сети. В частности, я хочу, чтобы мои устройства с Linux работали без приложения Android. Я наткнулся SSDP и это, кажется, подходит для моей задачи. Я искал некоторые библиотеки ssdp для c ++, но не нашел ни одной.
Должен ли я реализовать это самостоятельно? Если да, можете ли вы дать краткий обзор того, как это можно сделать? Или это просто отправка сообщений NOTIFY через UDP, что можно сделать без библиотеки!
С уважением
Если использование библиотеки C не противоречит вашей религии, вы можете использовать GSSDP: это хорошо протестированная реализация SSDP (она является частью GUPnP стек), который зависит только от glib, gobject и libsoup. Увидеть справочное руководство а также исходный код.
В вики-статье, на которую вы ссылаетесь, упоминается UPnP как преемник SSDP. Возможно, у libupnp есть то, что вам нужно? http://pupnp.sourceforge.net/
Де-факто реализация mDNS / DNS-SD для Linux — это Avahi. Это обеспечивает различные привязки для разработчиков. Если вы разрабатываете на C или C ++, вы должны посмотреть здесь: http://avahi.org/download/doxygen/
Существует три API-интерфейса для интеграции: avahi-core, avahi-client и avahi-gobject. avahi-core является встраиваемой библиотекой, а реализация mDNS поддерживает отражение между несколькими подсетями.