Bonjour à tous,
J'essaie de faire du broadcast pour une application, voici mon code coté serveur :
J'ai le droit en résultat à : Erreur sendto() : Network is unreachable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 struct sockaddr_in broadcast; broadcast.sin_addr.s_addr = INADDR_BROADCAST; broadcast.sin_family = PF_INET; broadcast.sin_port =htons(33333); int sock= socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); int on = 1; char msg[1024]; strcpy(msg,message.c_str()); // message passé en parametre de fonction, c'est un string int idSet = setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char*)&on, sizeof(on)); if(idSet == -1) erreur("Probleme de setsockopt"); else cout<<idSet; int idSend = sendto(sock, msg, sizeof(msg),0, (struct sockaddr*)&broadcast, sizeof(broadcast)); if(idSend== -1) { perror("Erreur sendto()"); erreur("Erreur envoi de message par le broadcast"); }
J'explique le contexte (en gros):
J'ai un serveur qui lance un thread à chaque fois qu'un client se connecte. Si un client fais une action particulière je dois pouvoir en avertir les autres clients connectés, d'où l'utilisation de broadcast.
Voila j'espere que quelqu'un pourra m'éclairer la dessus, et si vous avez besoin d'autres explciations sur le reste de mon code, je me tiens à votre disposition
Cordialement
P.S : Tapez pas trop fort si j'ai fait une grosse connerie![]()
Partager