khanjri
Messages postés12Date d'inscriptionmardi 6 février 2001StatutMembreDernière intervention20 avril 2007
-
9 avril 2005 à 08:39
guerald
Messages postés5Date d'inscriptionjeudi 26 février 2004StatutMembreDernière intervention27 novembre 2005
-
27 nov. 2005 à 22:13
bonjour a tous
je developpe un programme client/serveur, la communication passe entre le client et le serveur, mon probleme est le suivant: quand le serveur envoie deux requete successive au client la deuxieme est perdue, car le client au moment de la reception de la deuxieme traite la premiere (je que je pense), et quand je met un sleep(2) entre l'envoie des deu requetes, le client arrive a les recevoir toute les deux.
est ce que qqu'un peut me donner un tuyau pour resoudre ce probleme?
merci a tous
minet03
Messages postés415Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention 2 décembre 20053 9 avril 2005 à 13:01
Tu peux utiliser les threads pour traiter chaques requêtes. Comme ça
ton programme continuera à recevoir des requètes et pendant ce temps il
traite la ou les précédentes.
khanjri
Messages postés12Date d'inscriptionmardi 6 février 2001StatutMembreDernière intervention20 avril 2007 9 avril 2005 à 22:43
merci minet03 pour ta repoonse
j'ai pense a travailler avec les pthread pour traiter les requetes venants du serveur
(j'utilise les threads dans le serveur pour traiter les requetes clients, un thread pour chaque client), mais au niveau du client, tu ne trouves pas que un thread pour chaque requete sera de lourdes consequences sur les ressource client, je cherche une methode pas couteuse si elle existe.
khanjri
Messages postés12Date d'inscriptionmardi 6 février 2001StatutMembreDernière intervention20 avril 2007 10 avril 2005 à 05:46
je crois que je me suis mal exprime, mois je developpe un jeu multi-joueur en reseau, et pour faire des initialisations, le serveur doit envoyer une serie de requetes au client pour l'informer de la configuration du jeu, car des joueurs peuvent etres deja connectes, donc, le faite de faire 2 send successifs au client sans temporisation fait perdre le 2eme, donc moi je cherche une facon de faire ca sans faire un sleep entre les send du serveurs.
quand au serveur, il gere bien les demandes de connection et les equetes des client, car j'ai utilise les thread.
Vous n’avez pas trouvé la réponse que vous recherchez ?
minet03
Messages postés415Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention 2 décembre 20053 10 avril 2005 à 10:01
Est ce que ta deuxième requête génère une erreur quelconque ? Si oui quelle est l'erreur (GetLastError()).
Ensuite, ton client peut géré les requêtes avec des threads : dès qu'il
recoit une requête il créé un threads pour l'analysé, et pendant ce
temps il écoute toujours les nouvelles requêtes arriver. Et ainsi de
suite.
guerald
Messages postés5Date d'inscriptionjeudi 26 février 2004StatutMembreDernière intervention27 novembre 2005 27 nov. 2005 à 22:13
je vais rajouter 2-3 truc a mon poste de tout a l heure : les
caracteres speciaux font office de separateurs de requetes, la fonction
dont jai parlé utilise un buffer de lecture que tu remplis avec recv. A
chaque appel de la fonction tu regardes si il y a un message dans ton
buffer, si oui tu le vire du buffer et tu le retourne sinon tu fais un
appel à recv.