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 : 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));
Je vois pas, j'ai essayé à forcer une interface avec l'option SO_BINDTODEVICE.

Voici la ligne que j'utilise pour recevoir :

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);
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 !