У меня есть программа для ПК, получающая данные от 20 пользовательских аппаратных блоков через UDP. Каждый из этих блоков постоянно отправляет UDP-сообщения на один UDP-сокет на ПК. Все сообщения содержат от 10 до 150 байт данных, и каждый блок отправляет около 20 сообщений за 12 секунд.
Тестирование показывает, что некоторые сообщения пропускаются ПК. Чем меньше ящиков в сети, тем меньше пропущенных сообщений.
Долгосрочное решение состоит в том, чтобы буферизовать данные в оборудовании и позволить ПК извлекать данные в соответствии с требованиями через TCP, но мне нужно решить / минимизировать проблему пропущенных сообщений в краткосрочной перспективе, пока это решение не будет развернуто. Идеи включают в себя:
- обновление ПК
- отфильтровывать ненужные сообщения перед передачей
- объединение отдельных сообщений UDP в аппаратном обеспечении в одно большее
- использование нескольких сокетов в ПК для получения сообщений
Мне нужны отзывы об этих идеях, а также любые идеи, которые мы могли пропустить.
Принимающая программа - это программа C ++ Builder, работающая на Indy9.