Sockets

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 - 27 sept. 2003 à 18:12
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 - 27 sept. 2003 à 19:11
Hello!!!

Je fais un prog avec les sockets. J'aimerais savoir comment faire pour envoyer le msg a plusieurs clients.

Merci

@++

Raf

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"

9 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
27 sept. 2003 à 18:16
Salut,
Ben une boucle avec plusieurs send(...).
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
27 sept. 2003 à 18:20
Ok! Mais y a t il un moyen pour changer l'ip de destination du socket en cours???

@++

Raf

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
27 sept. 2003 à 18:42
Salut,
Si tu utilises le protocole TCP, pour chaque client tu as une connexion differente, donc pour chaque client tu as un socket handle que tu as obtenu avec accept(...).
Donc tout ces handle sont dans un tableau, et il suffit de faire une boucle pour envoyer un message a tout les clients.

Si tu utilises le protocole UDP, suffit de changer l'ip de la structure sockaddr_in que tu utilise avec la fonction sendto(...).
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
27 sept. 2003 à 19:02
Si g:

sin.sin_addr.s_addr = inet_addr(ip);
sin.sin_family = AF_INET;
sin.sin_port = htons(80);
sock = socket(AF_INET, SOCK_STREAM, 0);

connect(sock, (SOCKADDR *) &sin, sizeof(SOCKADDR));

send(sock, requete, (int)strlen(requete), 0);

Je dois déconnecter, changer sin.sin_addr.s_addr er reconnecter???

Merci

@++

Raf

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
27 sept. 2003 à 19:03
Personnelement, pour un serveur multiclient tcp, je te conseille celui de Thaeron : http://www.cppfrance.com/code.aspx?ID=11141

Ensuite, pour envoyé un msg a tt le monde, il te suffira de faire ça :

client*envoimsg;
for(envoimsg=klist->next;envoimsg!=NULL;envoimsg=envoimsg->next)
sockwrite(envoimsg->sock, "LeMessage");
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
27 sept. 2003 à 19:05
euh, met pas de
sockwrite(envoimsg->sock, "LeMessage");

mais un send(envoimsg->sock, LeMessage, strlen(LeMessage), 0);
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
27 sept. 2003 à 19:08
Salut,
Oui il faut déconnecter et reconnecter a chaque fois.
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
27 sept. 2003 à 19:10
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
27 sept. 2003 à 19:11
D'accord, je ferais la déconnection-reconnection.

Merci à vous 2.

@++

Raf

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
Rejoignez-nous