[C] socket sur une plage d'adresse IP

socket sur une plage d'adresse IP [C] - C - Programmation

Marsh Posté le 19-06-2006 à 10:43:44    

Bonjour,
 
je voudrai savoir si il est possible qu'un client écoute sur plusieurs adresses IP simultanément avec le même socket. Je précise que je suis sur le même port et en UDP pour faire du multicast. Ou bien faut-il créer une socket par adresse?
Par exemple je voudrai écouter la plage d'adresses 239.192.*.*
 
Merci de poster vos codes sources si possible. :hello:


Message édité par Kimilsung le 19-06-2006 à 10:58:59
Reply

Marsh Posté le 19-06-2006 à 10:43:44   

Reply

Marsh Posté le 19-06-2006 à 11:02:12    

si tu veux faire du multicast, alors contente toi de rejoindre ton groupe multicast et d'envoyer la sauce

Reply

Marsh Posté le 19-06-2006 à 11:33:58    

Et comment je fais si je veux recevoir plusieurs groupes multicast? :)  Ah tu me donnes une idée comment abonner plusieurs adresses à un groupe.

Reply

Marsh Posté le 22-06-2006 à 11:58:36    

Bonjour, je vous fais part de mes découvertes.
 
char IP[14]="238.192.23.51";  
struct ip_mreq imr;
 
...
 
  imr.imr_multiaddr.s_addr = inet_addr(IP); //htonl(INADDR_ANY); /* adresse du groupe */
  imr.imr_interface.s_addr = htonl(INADDR_ANY);   /*adresse locale*/
  if (setsockopt(sdr, IPPROTO_IP, IP_ADD_MEMBERSHIP, (void *) &imr, sizeof(struct ip_mreq)) < 0) {
    perror("setsockopt - IP_ADD_MEMBERSHIP" );
    exit(1);
  };
 
Maintenant je veux écouter toutes les adresses multicast soit de 224.0.0.0 à 239.255.255.255. Comment je fais sans passer par une boucle? Je ne peux m'abonner à toutes les adresses par INADDR_ANY.
 :bounce:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed