Linux C/C++ broadcast UDP sur machine sans gateway - C - Programmation
Marsh Posté le 08-10-2011 à 16:50:10
Bon, j'ai répondu en MP, mais on peut tenter d'en faire profiter tout le monde:
essayer avec flags = MSG_DONTROUTE; car c'est le flags = 0 qui fait qu'un envoi en INADDR_BROADCAST avec l'option SO_BROADCAST tente de voir quels sont le(s )gateway(s).
Citation : sendto 255.255.255.255: |
Noter qu'en WIN32, l'implementation de Microsoft "ignores silently" ce flag MSG_DONTROUTE...
A+,
Marsh Posté le 08-10-2011 à 17:00:57
Je comprends, mais je ferais profiter les autres de mon expérience quand j'aurais une solution qui marche.
Comme dis en MP, j'ai déjà testé MSG_DONTROUTE, mais sans succès.
La suite lundi matin sauf si une priorié triple 0 me tombe dessus !
A+
Marsh Posté le 08-10-2011 à 17:51:30
Mais notes aussi que le pb est peut être du à ton kernel qui est pas de première jeunesse. Il y a eu du patch en 2006 qui me semble en rapport avec cette situation: http://freebsd.1045724.n5.nabble.c [...] 80915.html
A+,
Marsh Posté le 08-10-2011 à 19:19:29
Oui, c'est un 2.4.17 ou 27 je ne sais plus trop, mais il est bien probable que ce soit le cas.
A+
Marsh Posté le 10-10-2011 à 08:43:21
Bon et bien je confirme, avec mon kernel 2.4.27 (que je ne peux pas changer) si je met le flag MSG_DONTROUTE, j'ai "Network is unreachable" que j'ai ou non une gateway !
Je vais donc passer au plan B pour mon prog :
Si pas de gateway, ajouter default gateway = mon ip.
A+
Marsh Posté le 07-10-2011 à 10:59:22
Bonjour,
Comme indiqué, je cherche à envoyer un paquet UDP en broadcast.
Tout va bien si la table de routage a une default gateway.
En revanche quand il n'y en a pas, j'ai le message "Network is unreachable"
D'après ce que j'ai lu, c'est normal, mais en même temps bizarre car il me semble que le broadcast n'est pas propagé par les routeurs.
Mon code :
Est-ce que ce que j'essaye de faire est possible ?
Bien sûr, la solution est d'ajouter une default gateway, mais mon soft ne peut pas avoir cette garantie...
Message édité par Mara's dad le 07-10-2011 à 11:06:39
---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.