Salut!!
J'ai un petit probleme de temporisation de mes sockets. J'ai pas vraiment trouvé ce que je cherchais dans les posts précédents alors... me voici.
Je developpe un client qui se connecte à un serveur. (Oui, ca valait le coup de l'écrire)
Donc je repere la connexion et puis j'attends des données émises par le serveur. Pbm. Il se peut que le serveur accepte la connexion et n'envoie rien. En quel cas le client attend indéfiniment pendant très longtemps voir infiniment.
Bref, je voudrais mettre en place un systeme qui fait que si rien n'est recu pendant une certaine durée alors, on ferme la connexion et puis basta...
Alors pour les détails maintenant:
je travail en VC6
mon recv est bloquant.
et voici un extrait de mon code, ou je voudrais intervenir
Je voudrais armer un timer avant le recv, le stopper apres, et faire des choses si jamais je ne recois rien dans le temps imparti. Si possible, j'aimerais garder un maximum de visibilité sur mon "environmement" dans ce bout de code. Le code que je vous ai donné est un extrait d'une fonction membre d'un classe. J'aimerais encore avoir la visibilité sur la classe lorsque je detecte une non reception.....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 while(this->getEstConnecte() == true) { int out = recv(this->getSocketDescriptor(), this->buffer,TAILLE_MESSAGE,0); if(out == TAILLE_MESSAGE_WB) { //blabla } else //blablabla }
J'ai bien une solution envisageable qui constituerait à lancer un thread en parallele et mettre en place des events mais ca me parait un peu lourd pour une si petite chose. Je suis sur qu'il y a plus simple mais je sais pas ce que c'est..
Voila. J'ai fait aussi clair que possible. Enfin si vous voulez plus de détail, je suis pret à vous aidez pour que vous puissiez m'aider.......
Merci beaucoup de votre soutien..
Sebastien.
Partager