Sockets bloquands, Thread, read()

Résolu
Djoobstil Messages postés 38 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 22 mars 2005 - 24 août 2004 à 03:48
cs_zwei Messages postés 16 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 21 février 2009 - 30 mars 2007 à 17:53
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

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
24 août 2004 à 18:22
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.
3
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
24 août 2004 à 04:53
Salut,
Ben il faut lancer un nouveau thread pour chaque socket qui appele read() ou recv().
0
Djoobstil Messages postés 38 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 22 mars 2005
24 août 2004 à 18:12
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
0
cs_zwei Messages postés 16 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 21 février 2009
29 mars 2007 à 17:03
bonjour, et comment peut-on arreter un thread qui est bloqué sur un recv ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_zwei Messages postés 16 Date d'inscription mercredi 24 mai 2006 Statut Membre Dernière intervention 21 février 2009
30 mars 2007 à 17:53
c'est bon j'ai trouvé c'était si simple ... on ferme le socket puis le thread.
0
Rejoignez-nous