В моем окружении у меня есть Android-смартфон и некоторые другие устройства. Другие устройства работают под управлением Linux. Все устройства подключены к локальной сети через Wi-Fi. Теперь я хочу, чтобы смартфон распознавал и обнаруживал другие устройства в сети, поэтому мне нужно реализовать какое-то обнаружение служб. На других устройствах не должно быть никакого взаимодействия с пользователем. После этого два устройства должны иметь возможность сопряжения друг с другом.
Я читал, что в Android есть поддержка Обнаружение сетевых служб (NSD). Это хорошо, но, похоже, это работает только на устройствах Android, верно? В моем случае другие устройства — это нестандартное оборудование, работающее под управлением встроенного Linux. Кроме того, языки программирования не совпадают. Приложение по другим решениям реализовано с использованием C ++.
Я также читал о Простой протокол обнаружения услуг (SSDP). Я думаю, это должно работать независимо от платформы, верно? Можете ли вы дать простое объяснение, как реализовать это с помощью SSDP?
Вы бы порекомендовали SSDP для реализации Service Discovery? Есть ли полезные библиотеки для android и c ++?
Или вы могли бы предложить другие подходы осознать, что я пытаюсь сделать?
С уважением
Мы сделали нечто похожее между устройствами iOS и Mac, используя:
http://www.multicastdns.org/
Вы также можете реализовать свой собственный с широковещательным UDP; но имейте в виду, что некоторая сетевая инфраструктура может блокировать эти типы пакетов (корпоративные сети).
Других решений пока нет …