HOWTO: non-blocking socket

Signaler
Messages postés
47
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
9 juin 2004
-
Messages postés
65
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
11 septembre 2004
-
Salut tt le monde
J'ai commencé un programme qui crée un socket UDP et qui ecoute en faisant des loop de recvfrom().
Seulement, comme l'indique a juste titre MSDN, cette fonction bloque le programme si ya pas de donnee a recevoir. Sauf si le socket est "non-blocking"!!

Question: Comment crée-t-on un socket non-blockinge?
et Question auxiliaire: es-ce que quelqu'un aurait pas par hasard un tout petit code-source pour me montrer comment, avec un socket kiblokpas, on verifie si des donnees sonht en attente?

mersy
A voir également:

3 réponses

Messages postés
258
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
16 août 2004

salut!
Pas besoin de loop pour recvfrom, car au moment où tu va appelé cette fonction, elle va attendre jusqu'à qu'elle reçoit des informations. Pour éviter de bloquer complétement le programme, tu n'as qu'à utiliser les threads (je pense que c'est le meilleur moyen).
Je pense qu'il y a pleins de sources sur le site qui pourront d'aider, mais je pense que la plupart est en TCP et non en UDP.
Bye,Xentor609
Messages postés
47
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
9 juin 2004

Oui, justement, le "topique" etait justement que je ne veut pas bloquer. Comment fait-on dis-tu? les threads? ça marche comment?
Je vais regarder un peu les sources sur le sujet. Ce ki ne vous dispense pas de m'aider! :)

mais je crois que j'ai trouvé une piste: la fonction ioctlsocket... à explorer!

--anthraxx
Messages postés
65
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
11 septembre 2004

le multi threading est DUR a gerer !!!!!
faut utiliser le select, c bien plus beaucoup meilleur !!