Bonjour,
j'ai un petit soucis au niveau de la réception d'une requête provenant d'une broadcast ( pour rappel : xxx.xxx.xxx.255 pour un réseau ).
J'utilise setsockopt pour régler SO_BROADCAST pour dire à la socket qu'elle peut recevoir une donnée sur la broadcast mais je ne reçoit rien.. pourtant la requête arrive bien sur mon interface.
comme ceci :
Je vois pas, j'ai essayé à forcer une interface avec l'option SO_BINDTODEVICE.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int optval; optval = 1; setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &optval, sizeof(int));
Voici la ligne que j'utilise pour recevoir :
où peer est mon sockaddr_in, packet le paquet de réception et len_packet sa taille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int len_peer = sizeof(peer); recvfrom(sock, packet, len_packet, 0, (struct sockaddr *)&peer, &len_peer);
C'est bizarre puisque c'est quasi identique à l'envoi, donc je vois plus.
Et l'envoi fonctionne en broadcast.
Alors si quelqu'un connait ou s'il a eu ce problème, qu'il n'hésite pas !
Partager