darkkinj
Messages postés18Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention12 mars 2005
-
25 févr. 2005 à 21:24
cs_Stormy
Messages postés255Date d'inscriptionsamedi 20 avril 2002StatutMembreDernière intervention16 janvier 2007
-
27 févr. 2005 à 01:36
Je me trouve face à un problème de protection pour mon application serveur. Le serveur est sur un thread correspondant à un client en boucle (quasi)infinie qui gère la sortie normale pour la fermeture de socket.
J'ai trouver comme solution que si le client n'envoie rien 3 fois il est déconnecté. Dans ce cas si le client est tué, le serveur lit sur une socket où il n'y a rien et au bout de trois fois déconnecte.
J'aurais voulu savoir si c'est une bonne méthode ou si je me trompe totalement et que normalement je devrai faire autre chose. voici le code de traitement client:
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 26 févr. 2005 à 08:52
Salut darkkinj,
pour moi t'as solution me semble plutôt bonne, mais vaut mieux demander à qq'un qui s'y connait pas mal dans le réseau et internet, comme par exemple Aardman.
T'as qu'à lui envoyer un mail pour qu'il regarde sur le forum.
Il saura sûrement te répondre ou au moins son avis qui ne pourra être que pertinant.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 26 févr. 2005 à 17:55
Salut,
Perso j'ai pas bien compris..
Tu déconnectes un client si il n'envoies rien pendant 3 fois ? mais comment tu sais qu'il n'a rien envoyé, puisque tu n'a rien recu ?
Je pense qu'il vaudrait mieux faire un systeme de timeout non ? (si le client ne fait rien pendant 1 minute => déco).
darkkinj
Messages postés18Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention12 mars 2005 26 févr. 2005 à 18:46
ben le truc c'est que si je tur le processus client ( via ctrl+alt+suppr), le serveur reçoit lui plein de message vides en fait, la socket n'est pas fermée mais il n'y a plus personne de l'autre côté. J'aurai voulu essayer de tester si un client était toujours présent mais vu ke le serveur reçoit tant de message vide ce n'est pas faisable. Vu que apparemment il n'y a pas d'autres solutions je vais accepter la première réponse.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 26 févr. 2005 à 18:53
Salut,
Je comprend pas l'expression: "recevoir un message vide".
Un moyen de savoir quand un client se déco c'est de regarder la valeur de retour du recv():
Si c'est SOCKET_ERROR ou 0, tu peux considerer que la connexion est perdue.
Vous n’avez pas trouvé la réponse que vous recherchez ?