Something went wrong on our end
-
Werner Sembach authoredWerner Sembach authored
test_multicast.c 1.58 KiB
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int main() {
int sockfd_ipv4 = socket(PF_INET, SOCK_STREAM, 0);
if (sockfd_ipv4 < 0) {
perror("Could not create ipv4 socket");
exit(errno);
}
struct group_req group_ipv4 = {0};
struct sockaddr_in *psin_ipv4 = (struct sockaddr_in *) &group_ipv4.gr_group;
psin_ipv4->sin_family = AF_INET;
psin_ipv4->sin_port = 1234;
psin_ipv4->sin_addr.s_addr = htonl(inet_addr("10.10.2.224"));
if(setsockopt(sockfd_ipv4, IPPROTO_IP, MCAST_JOIN_GROUP, &group_ipv4, sizeof(group_ipv4))) {
perror("Could not join ipv4 multicast group");
close(sockfd_ipv4);
exit(EXIT_FAILURE);
}
close(sockfd_ipv4);
printf("Ipv4 test successfull!\n");
int sockfd_ipv6 = socket(PF_INET6, SOCK_STREAM, 0);
if (sockfd_ipv6 < 0) {
perror("Could not create ipv6 socket");
exit(errno);
}
struct group_req group_ipv6 = {0};
struct sockaddr_in6 *psin_ipv6 = (struct sockaddr_in6 *) &group_ipv6.gr_group;
psin_ipv6->sin6_family = AF_INET6;
psin_ipv6->sin6_port = 1234;
inet_pton(AF_INET6, "ff02:abcd:0:0:0:0:0:1", &(psin_ipv6->sin6_addr));
if(setsockopt(sockfd_ipv6, IPPROTO_IPV6, MCAST_JOIN_GROUP, &group_ipv6, sizeof(group_ipv6))) {
perror("Could not join ipv6 multicast group");
close(sockfd_ipv6);
exit(errno);
}
close(sockfd_ipv6);
printf("Ipv6 test successfull!\n");
return EXIT_SUCCESS;
}