Предположим, у меня есть производитель, расположенный на одной машине, и два независимых потребителя на другой.Потребители имеют один и тот же IP.Я хочу, чтобы мои данные отправлялись через WiFi, и я хочу избежать отправки одних и тех же пакетов дважды: я имею в виду, что я хочу, чтобы пакеты реплицировались как можно позже - либо на маршрутизаторе, либо на конечном компьютере.
Iудалось найти следующие варианты:
1) Просто использовать разные порты - в этом случае все будет отправлено дважды, но по крайней мере все потребители получат свои копии данных.
2) Попробуйтеиспользовать SO_REUSEPORT
- без многоадресной передачи это заставит только один из двух потребителей получить пакеты.
3) Использовать многоадресную рассылку (с SO_REUSEADDR
) - я думаю, это единственное решение для моей проблемы,и пакеты будут реплицироваться маршрутизатором, а не издателем.
Я знаю, что существуют библиотеки и платформы обмена сообщениями, которые должны отвечать за маршалинг и маршрутизацию, но мне нужно «чистое» решение UDP с возможнонекоторая простая логика на это.Я не уверен, что я прав в отношении вариантов, которые я упомянул, и не знаю, существует ли какое-либо более простое и подходящее решение.