Forum Programmation.c Broadcast UDP sur de multiples interfaces

Posté par  (site web personnel) .
Étiquettes : aucune
0
15
mar.
2006
Salutations,

Comme l'exprime déjà le titre, je cherche à réaliser des broadcasts UDP. J'utilise pour ça la méthode que j'imagine être classique, c'est à dire :
setsockopt(raydium_network_socket,SOL_SOCKET,
SO_BROADCAST,&on,sizeof(on));
... à destination de ...
struct sockaddr_in sock;
sock.sin_family=AF_INET;
sock.sin_addr.s_addr=htonl(INADDR_BROADCAST);
sock.sin_port=htons(RAYDIUM_NETWORK_PORT);
... avec un sendto(). Tout fonctionne parfaitement, à un détail près : sur les machines avec plusieurs interfaces réseau, les broadcasts partent uniquement sur la première interface (eth0, par exemple). Je ne trouve rien de particulier dans la page ip(7) à ce sujet, sinon à propos des multicasts :
For hosts with multiple interfaces, each multicast transmission
is sent from the primary network interface.
The IP_MULTICAST_IF option overrides the default for
subsequent transmissions from a given socket.


Sachant que je cherche à éviter à l'utilisateur d'avoir à configurer lui même son interface de broadcast, comment voyez-vous la chose ? Existe-t'il une astuce ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.