Changer le Time To Live d'un packet UDP en multicast sous visual C++

Résolu
Korpsegrinder Messages postés 2 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 14 novembre 2008 - 6 nov. 2008 à 16:05
Korpsegrinder Messages postés 2 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 14 novembre 2008 - 14 nov. 2008 à 16:43
Bonjour,
Mon application utilise un socket multicast pour envoyer des trames à plusieurs autres applications. Mon problème : deux routeurs se sont glissés sur le réseau. Après avoir modifié les paramètres des routeurs CISCO pour laisser passer le multicast, je me suis rendu compte que les paquets n'arrivaient pas à destination car le TTL (time to live) n'est que de 1 pour mes paquets UDP (mes trames TCP passent les routeurs avec un TTL supérieur ... 16 il me semble).
Comment modifier la valeur du TTL dans mon socket, quelle fonction utiliser ? Après MSDN et internet, toujours aucune réponse ni piste.

L'application est développée en Visual C++, j'ai trouvé différents posts sur VB ou ca a l'air bien plus simple ...

Merci de vos réponses

2 réponses

fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
6 nov. 2008 à 17:12
Bienvenu dans le monde du multicast !!!! Va sur ce lien.

unsigned char ttl = 32;

setsockopt(sdw, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, sizeof(ttl));
3
Korpsegrinder Messages postés 2 Date d'inscription jeudi 6 novembre 2008 Statut Membre Dernière intervention 14 novembre 2008
14 nov. 2008 à 16:43
Merci pour l'info ! J'avais également trouvé la solution sur MSDN ! Et ca marche nickel ...
0
Rejoignez-nous