(Courriels de diversion: <dialectes@haranguees-touchees.com> <inciterons@repertorieront-electifs.com> <guepards@reaffirmerai-reniflerais.com> <lierent@vivoterait-insaisissable.com> <jeunais@engouffrons-metres.com> <fourreurs@retardions-epaula.com> <violentees@combinais-reinvesti.com> <amadouerait@depeigne-rodailler.com> <agrement@crachez-inexpliques.com> <versees@recensera-pavanerait.com> )


Bonjour,

Je suis nouveau sur ce forum donc je me présente, je m'appelle Guillaume Salles
et je fais en ce moment mon stage de fin d'études (DESS STRI à l'UPS). 

Je dois programmer un serveur multicast en C sous Linux mais j'ai un petit
problème, en fait je voudrais simplement envoyer les infos sur un socket UDP
avec le canal multicast (adresse IP de classe D) comme adresse de destination,
c'est là que ça coince, en fait j'arrive pas à envoyer de messages via les
sockets UDP sauf si  j'envoie a un hôte réel qui se trouve sur le réseau et qui
attend les messages...

Lorsque j'essaie d'envoyer des messages vers un canal multicast il renvoie un
message d'erreur:

sendto: Network is unreachable              


Voila la partie de mon code où je crée le socket et j'essaie d'envoyer les
messages :

	 if ((sock_UDP_fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
	   {
	     perror("socket");
	     exit(1);
	   } 

	 their_addr.sin_family = AF_INET;
	 their_addr.sin_port = htons(port_udp);

	 /* envoie sur canal multicast (m_r.UDPaddr)  */
	 their_addr.sin_addr.s_addr=inet_addr(m_r.UDPaddr);
	 bzero(&(their_addr.sin_zero), 8);

     /* envoie du buffer sur le socket UDP */ 
      if ((numbytes=sendto(sock_UDP_fd, buffer, i, 0,\
	   (struct sockaddr *)&their_addr, sizeof(struct sockaddr))) == -1)
	{
	  perror("sendto");
	  exit(1);
	}

Voilà, merci d'avance pour vos réponses,

Guillaume Salles

---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@CULTe.org>Le CULTe sur le web: <URL:http://www.CULTe.org/>