У меня есть приложение, которое принимает данные из нескольких источников многоадресной рассылки на одном и том же порту. Я могу получить данные. Тем не менее, я пытаюсь учитывать статистику каждой группы (т.е. Полученные сообщения, полученные байты), и все данные смешиваются. Кто-нибудь знает, как решить эту проблему? Если я попытаюсь посмотреть адрес отправителя, это не адрес многоадресной рассылки, а IP-адрес отправляющей машины.
Я использую следующие параметры сокета:
struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr = inet_addr("224.1.2.3");
mreq.imr_interface.s_addr = INADDR_ANY;
setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq));
а также:
setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &reuse, sizeof(reuse));
Я ценю любую помощь!!!