0
Ipv4와 Ipv6 프로토콜 모두에서 멀티 캐스트 그룹에 참여하려고합니다. 멀티 캐스트 그룹에 성공적으로 가입했지만이 tutorial을 사용하는 Ipv6에 성공적으로 가입했지만 관리 할 수 없었습니다. 내 코드는 다음과 같습니다setsockopt는 멀티 캐스트 멤버쉽에 대해 ENOPROTOOPT에 no를 설정합니다.
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 내가 근무 후 92
'wsdd-> bind' 메소드는 어떻게 정의되어 있습니까? – dbush
링크의 soap_bind 메소드 : https://www.cs.fsu.edu/~engelen/stdsoap2.cpp WITH_IPV6 및 WITH_NO_IPV6_V6ONLY 정의 – rotringuser