Sockets bloquands, Thread, read() [Résolu]

Signaler
Messages postés
38
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
22 mars 2005
-
Messages postés
16
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
21 février 2009
-
Bonsoir,

Je fais un programme connectant plusieurs bots sur IRC en utilisant une fonction dans plusieurs threads.
Le probleme est que read(), en mode bloquant, stop le thread en cours. Je ne veux pas passer en mode non-bloquant.
Comment puis-je faire pour garder le mode bloquant dans des threads avec read() ?

Cordialement, Djoobstil

5 réponses

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,
ces fonctions ne stoppent pas le thread, mais le bloquent tant qu'il n'y a pas de donnée a lire sur le socket. Des que la socket recoit quelque chose, ces fonctions retournent et le thread continue.

Généralement, quand on utilise les sockets bloquantes, on met le recv() dans une boucle, et la boucle dans un thread.
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,
Ben il faut lancer un nouveau thread pour chaque socket qui appele read() ou recv().
Messages postés
38
Date d'inscription
dimanche 10 août 2003
Statut
Membre
Dernière intervention
22 mars 2005

recv() et read() stoppent immediatement le thread. En lançant un nouveau thread, le recv() lira toutes les donnés avant de le stopper ?
Cordialement, Djoobstil
Messages postés
16
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
21 février 2009

bonjour, et comment peut-on arreter un thread qui est bloqué sur un recv ?
Messages postés
16
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
21 février 2009

c'est bon j'ai trouvé c'était si simple ... on ferme le socket puis le thread.