HOWTO: non-blocking socket

cs_anthraxx Messages postés 47 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 9 juin 2004 - 21 août 2003 à 21:12
zinotron Messages postés 65 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 11 septembre 2004 - 20 oct. 2003 à 19:46
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

3 réponses

cs_Xentor609 Messages postés 258 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 16 août 2004
22 août 2003 à 08:01
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
0
cs_anthraxx Messages postés 47 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 9 juin 2004
22 août 2003 à 19:33
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
0
zinotron Messages postés 65 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 11 septembre 2004
20 oct. 2003 à 19:46
le multi threading est DUR a gerer !!!!!
faut utiliser le select, c bien plus beaucoup meilleur !!
0
Rejoignez-nous