Advertisement
  Home Tuesday, 09 March 2010 
Main Menu
 Home
 News
 FAQ
 C Source
 The Web Links
 Contact Us
 Administrator

Login Form
Username

Password

Remember me
Forgotten your password?
No account yet? Create one

Statistics
OS: Windows
PHP: 5.2.7-dev
MySQL: 4.0.15-nt
Time: 16:42
Members: 804
Hits: 750784
News: 13
WebLinks: 6

Online Users
No Users Online

Newsflash
Host Extensions for IP Multicasting [RFC1112] specifies the extensions
required of a host implementation of the Internet Protocol (IP) to
support multicasting.  The multicast addressess are in the range
224.0.0.0 through 239.255.255.255. Current addresses are listed below. www.iana.org/assignments/multicast-addresses

Multicast Server Example   PDF  Print  E-mail 
Written by Bilbo Baggins  
Tuesday, 29 June 2004
Simple example of a IP Multicast server (with compile instructions and execution intrutions) /* multisnd

/*  multisnd.c - see also diewitherror.c and multirec.c */

/* compile  $ cc -o multisnd.exe multisnd.c diewitherror.c */

/*                   program      multicast ip  port  data          ttl */

/* useage example $ ./multisnd.exe 224.0.22.1 9210 testtesttesttest 2

/* tested with cygwin gcc win32- linux gcc -sun */

 

#include <stdio.h>      /* for fprintf() */

#include <sys/socket.h> /* for socket(), connect(), send(), and recv() */

#include <arpa/inet.h>  /* for sockaddr_in and inet_addr() */

#include <stdlib.h>     /* for atoi() and exit() */

#include <string.h>     /* for memset() */

#include <unistd.h>     /* for sleep() */

 

void DieWithError(char *errorMessage);  /* External error handling function */

 

int main(int argc, char *argv[])

{

    int sock;                         /* Socket */

    struct sockaddr_in multicastAddr; /* Multicast address */

    char *multicastIP;                /* IP Multicast address */

    unsigned short multicastPort;     /* Server port */

    char *sendString;                 /* String to multicast */

    unsigned char multicastTTL;       /* TTL of multicast packets */

    unsigned int sendStringLen;       /* Length of string to multicast */

 

    if ((argc < 4) || (argc > 5))         /* Test for correct number of parameters */

    {

        fprintf(stderr,"Usage:  %s <Multicast Address> <Port> <Send String> [<TTL>]\n",

                 argv[0]);

        exit(1);

    }

 

    multicastIP = argv[1];            /* First arg:  multicast IP address */

    multicastPort = atoi(argv[2]);    /* Second arg:  multicast port */

    sendString = argv[3];             /* Third arg:  String to multicast */

 

    if (argc == 5)                     /* Is TTL specified on command-line? */

        multicastTTL = atoi(argv[4]);  /* Command-line specified TTL */

    else

        multicastTTL = 1;              /* Default TTL = 1 */

 

    /* Create socket for sending/receiving datagrams */

    if ((sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)

        DieWithError("socket() failed");

 

    /* Set TTL of multicast packet */

    if (setsockopt(sock, IPPROTO_IP, IP_MULTICAST_TTL, (void *) &multicastTTL,

          sizeof(multicastTTL)) < 0)

        DieWithError("setsockopt() failed");

 

    /* Construct local address structure */

    memset(&multicastAddr, 0, sizeof(multicastAddr));   /* Zero out structure */

    multicastAddr.sin_family = AF_INET;                 /* Internet address family */

    multicastAddr.sin_addr.s_addr = inet_addr(multicastIP);/* Multicast IP address */

    multicastAddr.sin_port = htons(multicastPort);         /* Multicast port */

 

    sendStringLen = strlen(sendString);  /* Find length of sendString */

    for (;;) /* Run forever */

    {

        /* Multicast sendString in datagram to clients every 3 seconds */

        if (sendto(sock, sendString, sendStringLen, 0, (struct sockaddr *)

              &multicastAddr, sizeof(multicastAddr)) != sendStringLen)

            DieWithError("sendto() sent a different number of bytes than expected");

        sleep(3);

    }

    /* NOT REACHED */

}

 

 

 

 

 

Last Updated ( Tuesday, 29 June 2004 )

Browser Prefs
Add to Favorites
Make Home Page

Newsfeeds
Internet:Business News
Tue, 09 Mar 2010 15:47
Stocks managed to pare their losses Friday despite plenty of bad news.
Palm, RIM Lead Tech Stocks Higher
In purchasing Aardvark, Google looks to extend its social media reach with a service that taps into the knowledge of the online community for answers. What do competitors say?
Google Goes More Social With Aardvark Buy
Analysts see bellwether computing giant on solid ground as it prepares to report earnings for the first quarter of the fiscal year, an event that promises insight into the state of the larger technology industry.
HP Expected to Deliver Solid Earnings
BBC: Technology
Tue, 09 Mar 2010 15:47
BBC News
Hard drives are about to undergo one of the biggest format shifts in 30 years but it could cause problems for Windows XP users.
Hard drive evolution could hit XP
A plan to create a .xxx net domain for adult content will be revisited three years after it was rejected by internet regulators.
Porn net domain name plan revived
A never-before-seen reaction in nanotubes could make for batteries that pack a mighty punch, say researchers.
Nanotech 'fuse' for novel battery

Most Read
Multicast Client Example
Multicast Server Example
Welcome to IP Multicast Standards Initiative
diewitherror.c Multicast Client & Server
What ipmulticast.com will provide

: Home :: News :: FAQ :: C Source :: The Web Links :: Contact Us :: Administrator :
powered by world multicast ietf rmt wg ietf rmt wg