Я пытаюсь присоединиться к многоадресной группе по протоколу Ipv4 и Ipv6, для Ipv4 я успешно присоединился к группе многоадресной передачи, но для Ipv6 с использованием этого tutorial, но я не мог этого сделать. Мой код:setsockopt устанавливает ошибку no ENOPROTOOPT для многоадресного членства
ipv6_mreq m6cast;
sockaddr_in6 group;
inet_pton(AF_INET6, "FF02:0000:0000:0000:0000:0000:0000:000C", &group.sin6_addr);
m6cast.ipv6mr_interface = INADDR_ANY;
m6cast.ipv6mr_multiaddr = group.sin6_addr;
int socket = wsdd->bind(NULL,3702,100);
if (setsockopt(socket, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mcast, sizeof(mcast)) < 0)
socket= -1;
std::cout << errno << std::endl; //prints 0
if (setsockopt(socket, IPPROTO_IPV6,IPV6_ADD_MEMBERSHIP , &m6cast, sizeof(m6cast)) < 0)
socket= -1;
std::cout << errno << std::endl; //prints 92
Но setsockopt возвращает -1 с установкой ERRNO до 92.
Как определяется метод 'wsdd-> bind'? – dbush
метод soap_bind по ссылке: https://www.cs.fsu.edu/~engelen/stdsoap2.cpp WITH_IPV6 и WITH_NO_IPV6_V6ONLY определены – rotringuser