Recv non bloquant

Fermé
ingimy - 2 mai 2009 à 23:04
 zmbongo - 10 oct. 2010 à 18:41
Bonjour,
je veut savoir comment rendre mon recv non bloquant en languange c
merci

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
28 juin 2009 à 15:32
Salut,

Le prototype est : ssize_t recv(int s, void *buf, size_t len, int flags);
tu mets flags à MSG_DONTWAIT (seulement à partir de Linux 2.2 et la fonction sera non bloquante.

Cdlt
3
Utilisateur anonyme
28 juin 2009 à 15:27
Bonjour,

La fonction ioctSocket permet de lever le blocage sur une socket en lui passant en dernier argument un entier différent de 0.

SOCKET s;
unsigned long ulMode = 1;
...
ioctlSocket( s, FIONBIO, &ulMode );

si on passe ulMode à 0, le mode blocant est restauré.
1
si tu veux un truc non bloquant, alors le te conseille d'appeler la fonction
(recv) dans un thread (différent du thread principal bien sur )
1