[Socket][Setsockopt] - So_BROADCAST
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 :
Code:
1 2 3
| int optval;
optval = 1;
setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &optval, sizeof(int)); |
Je vois pas, j'ai essayé à forcer une interface avec l'option SO_BINDTODEVICE.
Voici la ligne que j'utilise pour recevoir :
Code:
1 2 3
|
int len_peer = sizeof(peer);
recvfrom(sock, packet, len_packet, 0, (struct sockaddr *)&peer, &len_peer); |
où peer est mon sockaddr_in, packet le paquet de réception et len_packet sa taille.
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 !