client serveur multithread - C++ - Programmation
Marsh Posté le 26-08-2002 à 15:54:50
Bah, ça veut pas dire grand chose "client serveur multithread"
c quoi qui est multithread ? le serveur ?
Marsh Posté le 26-08-2002 à 15:58:44
desole pour le manque d'info
j'explique:
j'ai un serveur qui est en attente de connection sur un port donné.
a chaque fois qu un client se connecte au serveur , celui ci
créer un thread qui s'occupera du traitement du client et ainsi de suite pour n client simultané.
merci
chtipoune
Marsh Posté le 26-08-2002 à 16:02:05
Donc c'est le serveur qui est multithread.
Eh bin c'est pas compliqué tout ça, si tu sais déjà faire un serveur simple, c'est qu'il utilise des forks. Les threads diffèrent assez peu, l'idée étant de recréer un thread après le accept pour écouter à nouveau sur la soquette. Au final, je trouve ça plus simple, et c'est également plus rapide.
Marsh Posté le 26-08-2002 à 16:06:39
...les unixiens ont tendance à oublier qu'ils sont en minrité !
Marsh Posté le 26-08-2002 à 16:06:55
j'utilise les mfc
l'appli serveur ecoute sur un port puis quand un client se connect, le socket qui ecoute créé un autre socket de connection
qu'il attribue au client sur un autre port.
auriez vous des morceaux de codes en mfc afin que je comprenne ?
merci
chtipoune
Marsh Posté le 26-08-2002 à 16:58:29
Si tu as déjà un client/serveur qui tourne correctement, il te suffit juste de faire quelques petites modifs :
En gros tu fais une boucle infini sur ton server pour qu'il boucle peu après la fonction accept().
A la suite de celle-ci tu crées juste un thread avec l'ensemble des fonctions de ton actuel client/serveur.
En faisant attention aux variables et tout le reste ça devrait aller.
(je ne l'ai jamais fait... j'étais sur le point de commencer quand on m'a dit : "Ce que tu fais c'est juste pour tester pas pour faire une application bien fignolée !" ...j'aurais tellement voulu tout bien finir joliment ! )
Marsh Posté le 26-08-2002 à 17:08:50
j'utilise une classe que je derive de la classe CAsyncSocket des mfc.
est ce que ton explication est valable avec cette classe ?
merci
chtipoune
Marsh Posté le 26-08-2002 à 17:37:04
Oups peut-être pas...
En fait je n'en sais rien ...
Personnellement j'ai fait mon client/serveur en utilisant directement les fonctions dispo et sans passer par les MFCs. (d'ailleurs je ne les ai jamais utilisées...)
Vraiment désolé de ne pouvoir t'en dire plus .
Marsh Posté le 27-08-2002 à 10:22:29
Les classes MFC de gestion des sockets etc ... sont un peu chiantes à utilsier.
Utilise plutot directemtn winsock2.0 quitte a créer tes propres classes encapsulant le tout.
Va sur www.flipcode.com, y a un bon gros tutorial la dessus.
Marsh Posté le 26-08-2002 à 15:53:11
salut a tous
je dois faire un client serveur multithread en vc++.
Je sais faire un client serveur simple mais pas en multithread
alors est ce que qq1 pourrait m'aider.
merci
chtipoune