[C] Comment detecter un TimeOut ? [Résolu/Fermé]

Signaler
Messages postés
4
Date d'inscription
mercredi 22 juin 2005
Statut
Membre
Dernière intervention
27 juin 2005
-
Messages postés
29982
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 juillet 2021
-
Bonjours.
Voilà, en gros je lance une fonction qui peux bloquer un certain temps ou pas duttout ( SDLNet_TCP_Recv( ); ). Avez vous une idée de comment je pourrai faire pour afficher un message d'erreur si jamais la fonction ne reponds pas au bout de 10sec par exemple. Un Timeout quoi. Merci

4 réponses

Salut!
Au fais tu programe en.... + de détailles.
a+
Messages postés
29982
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 juillet 2021
7 139
Naster : cf topic ;o)

Pour ton problème tu peux créer utiliser utiliser
- la fonction wait / waitpid : man 2 wait
- la fonction time : man time

Bonne chance
Messages postés
4
Date d'inscription
mercredi 22 juin 2005
Statut
Membre
Dernière intervention
27 juin 2005

Hum ... bien vu mamie.. !

sinon d'après ce que j'ai vu les fonction wait et time attendent toutes les 2 la fin d'execution de la fonction en question. peut être que je me trompe ?

Enfait, pour être un peu plus précis, je programme en C à l'aide de SDL ( parceque c multiplateformes ) et j'essaye de me connecter à un serveur. Et apparemment, la fonction de connection ne rend la main que si le serveur est joignable... sinon, elle bloque.

Bref, j'ai trouvé une solution bancale. Je lance la fonction dans une thread ( encore grace à SDL ) j'attends 0.5 seconde ( sleep(); ), et je tue la thread. Ensuite je regarde si elle avait fini ou pas !!!
Voilà, mais c'est pas très très Classe vu que dans la pluspart des cas je vais attendre pour rien.
Messages postés
29982
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 juillet 2021
7 139
sinon d'après ce que j'ai vu les fonction wait et time attendent toutes les 2 la fin d'execution de la fonction en question. peut être que je me trompe ?

Le wait oui, le time non :
       #include <time.h>
       time_t time(time_t *t);


Voilà, mais c'est pas très très Classe vu que dans la pluspart des cas je vais attendre pour rien.


Boarf ta solution est pas si mal que ça ;) L'informatique c'est parfois peu subtil ^^