Internet Multicasting 
by Bob Quinn


Example 1: 

nRet = WSAStartup(0x0202, &stWSAData);
if (nRet) {
    printf ("WSAStartup failed: %d\r\n", nRet);
    exit (1);
}


Example 2:

hSocket = socket(AF_INET, SOCK_DGRAM, 0);
if (hSocket == INVALID_SOCKET) {
  printf ("socket() failed, Err: %d\n", WSAGetLastError());
  exit(1);
}


Example 3:

#define TIMECAST_PORT  8910

stLclAddr.sin_family      = AF_INET;
stLclAddr.sin_addr.s_addr = htonl(INADDR_ANY);
stLclAddr.sin_port        = htons(TIMECAST_PORT);
nRet = bind(hSocket, 
    (struct sockaddr*) &stLclAddr, 
    sizeof(stLclAddr));
if (nRet == SOCKET_ERROR) {
    printf ("bind() port: %d failed, Err: %d\n",
             nPort, WSAGetLastError());
}


Example 4:

#define TIMECAST_ADDR  "234.5.6.7"

stMreq.imr_multiaddr.s_addr = inet_addr(TIMECAST_ADDR);
stMreq.imr_interface.s_addr = INADDR_ANY;
nRet = setsockopt(hSocket, 
   IPPROTO_IP, 
   IP_ADD_MEMBERSHIP, 
   (char *)&stMreq, 
   sizeof(stMreq));
if (nRet == SOCKET_ERROR) {
  printf ("setsockopt() IP_ADD_MEMBERSHIP address %s failed, Err: %d\n",
    strMCAddr, WSAGetLastError());
}


Example 5:

nRet = setsockopt(hSocket, 
   IPPROTO_IP, 
   IP_MULTICAST_TTL, 
   (char *)&lTTL, 
   sizeof(lTTL));
if (nRet == SOCKET_ERROR) {
  printf ("setsockopt() IP_MULTICAST_TTL failed, Err: %d\n",
           WSAGetLastError());
}




