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 ?
# ouf, je ne rêve pas ...
Posté par Xfennec (site web personnel) . Évalué à 2.
La réponse semble être qu'il faut émuler cette fonctionnalité en réalisant un parcours manuel de toutes les interfaces de la machine. Supair.
[^] # Re: ouf, je ne rêve pas ...
Posté par liberforce (site web personnel) . Évalué à 2.
Ce serait toujours d'actualité ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.