client serveur multithread

client serveur multithread - C++ - Programmation

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

Reply

Marsh Posté le 26-08-2002 à 15:53:11   

Reply

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 ?

Reply

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

Reply

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.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
Reply

Marsh Posté le 26-08-2002 à 16:06:39    

...les unixiens ont tendance à oublier qu'ils sont en minrité !  :sarcastic:

Reply

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

Reply

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 !"  :cry:  :cry: ...j'aurais tellement voulu tout bien finir joliment ! )

Reply

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

Reply

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 .

Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed