begin process at 2008 09 05 11:51:28
1 237 187 membres
144 nouveaux aujourd'hui
14 312 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme Architecture client Serveur Multithread [ Archives / Réseau / Internet ] (kawito)

Probleme Architecture client Serveur Multithread le 18/12/2003 18:50:09

kawito

Bonjour,

j'ai fais un client serveur TCP qui doit gerer n connexions(win32 c++) winsowk1.1.

le serveur gere les connexions a travers un thread accept
qui lance dynamiquement des thread de reception de chaque nouveau client.



en image (en esperant qu'elle s'affiche?):


l'echange des info a la connexion d'un client se passe bien,
mais lorsque que le serveur envoie un message, les clients connectée recoivent 1 message sur 2.

par contre les clients envoie a coup sur leur messages au serveur, mais une fois sur deux au autre clients connectés.

je perd donc des messages qui pourtant sont envoyés sans erreurs et de la bonne longueur ?
mais ce message n'arrive jamais au client !

je pense que cela vient des send a suivre qui foute le bordel
je resume:

Serveur client

send("MESSAGE_CHAT")--------> thread recv (commande)
traitement commande
"MESSAGE_CHAT"
send("Bonjour ça va") --------------------> recv(data)
afficher message





est ce qu'il faut respecter l'alternace de send et recv ?
Serveur client

send() ----> recv()
recv <----- send()
send()------->recv()


s'il le faut ? ,lorsque je fais des envoie depuis le processus principal ,pas de probleme,mais je ne peut pas faire de recv() dans le processus principal car le thread de reception et deja en attente d'une donnée ?

j'ai bien essayer de mettre le thread en pause,
puis faire mes send et mes recv,puis de le relancer,mais pas mieux!


kawito

Re : Probleme Architecture client Serveur Multithread le 20/12/2003 22:14:12

vidarusny

En voila une explication bien longue. Pour la réponse (je suis pas sûre d'avoir tous compris), oui il faut respecter les send et les recv, mais la question est quel mode utilise? Bon a priori je dirait un mode connecter, si tels est le cas lorsque ton client demande une connection a ton serveur, il ne peut plus se connecter à un autre serveur tant que tu n'a pas libérer la connection (idem poiur le serveur!).
En clair qu'en un client et un serveur se "parlent" il n'entende rien d'autre, ce qui peut effectivement expliquer que des message soit perdu (quoique c'est un problème qui est plus habituel dans le mode déconnecter)
enfin tu peut avoir plus d'explication à cette adresse :
http://www.themanualpage.org/reseau/reseau_concepts.php3

Voila si c'est pas ca alors c'est la gestion de ton thread.


Classé sous : message, send, serveur, client, recv

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS