rendered paste body#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#define LISTEN_ADDR INADDR_ANY
#define LISTEN_PORT 5004
#define MULITCAST_ADDR "233.3.18.66"
int main(int argc, char **argv)
{
int sock;
struct sockaddr_in sin;
struct ip_mreq mreq;
WSADATA wsadata;
char buffer[256];
int len;
WSAStartup(MAKEWORD(2, 2), &wsadata);
if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) != -1)
{
printf("Created socket\n");
memset(&sin, 0, sizeof(sin));
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_port = htons(LISTEN_PORT);
sin.sin_family = AF_INET;
if (bind(sock, (struct sockaddr *) &sin, sizeof(struct sockaddr)) != -1)
{
printf("Bound\r\n");
mreq.imr_multiaddr.s_addr = inet_addr(MULITCAST_ADDR);
mreq.imr_interface.s_addr = INADDR_ANY;
if (setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char*)&mreq, sizeof(mreq)) != -1)
{
while (1)
{
len = recvfrom(sock, buffer, sizeof(buffer), 0, NULL, NULL);
printf("%i\r\n", len);
}
}
else
{
printf("err\\mreq\r\n");
}
}
else
{
printf("err\\bind\r\n");
}
}
else
{
printf("err\\socket\r\n");
}
system("pause");
return (0);
}