У меня есть сетевое приложение, работающее на Linux. Я хочу, чтобы мое приложение сообщало о своем присутствии в локальной сети, а затем уведомляло другие приложения о некоторых изменениях. Поскольку я не знаю, сколько экземпляров моего приложения уже работает на других хостах в локальной сети, я не могу использовать SCTP, многоадресная связь является единственным способом (или, может быть, вы знаете другое решение?).
Структура, которую я хочу отправить по многоадресному адресу, имеет фиксированный размер (320 байт) и содержит двоичные данные, которые фактически представляют собой структуру чисел и битовых флагов.
Мне интересно, есть ли какие-либо хорошо известные методы программирования, которые могут сделать UDP-связь более надежной. Я понял только две вещи:
- Я отбрасываю все пакеты, полученные recvmsg (), размер которых меньше 320 байт.
- Я окружаю каждый пакет хорошо известным заголовком и нижним колонтитулом, а затем проверяю их каждый раз при получении нового сообщения, однако пакет все еще может быть поврежден где-то посередине справа?
Изменить:
Я нашел протокол PGN, но известно, что единственная реализация Linux работает на x86. Для меня это частичное решение, потому что я тоже хочу запустить свою программу на архитектуре ARM