All pastes #635800 Raw Edit

Mine

public text v1 · immutable
#635800 ·published 2007-07-27 11:51 UTC
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);    
}