Bonjour, je ne trouve pas de code d'exemple pour recevoir les données par socket via la boucle d'event.
Pouvez vous me donné du code?
Merci d'avance.
Bonjour, je ne trouve pas de code d'exemple pour recevoir les données par socket via la boucle d'event.
Pouvez vous me donné du code?
Merci d'avance.
Développeur d'Ultracopier
Qu'est-ce que la boucle d'event ? Normalement, si tu parles d'event, c'est qu'il n'est plus besoin de boucle (programmation événementielle ...).
Ah bon? la je ne te suis plus, d'ordinaire on a truc du genre
Quelque soit la fonction de multiplexage, il y a toujours une boucle englobante, c'est le principe même de la programmation évenementielle. Après elle peut être caché par un framework, mais il y a forcément une boucle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 while(true) { select(...); }
"The quieter you become, the more you are able to hear"
"Plus vous êtes silencieux, plus vous êtes capable d'entendre"
Bien sûr, il y a toujours une boucle (cachée ou pas) qui sert à intercepter les différents événements qui se passent, mais il n'est nullement nécessaire de faire une boucle particulière pour intercepter un événement particulier. Par exemple, puisque nous sommes sous Windows, chaque programme comporte une "boucle de messages" (qui est pratiquement la même quelle que soit l'application) qui sert à informer la procédure de traitement d'événements de l'application de chaque événement qui survient. Ensuite, quels que soient les types d'événement qu'on veut traiter, réseau ou pas réseau, il n'y a pas d'autre boucle (comme celle que tu proposes) qu'il faudra encore écrire pour en être notifié, il suffit juste d'ajouter un traitement sur réception de l'événement en question dans la procédure de traitement d'événements.
Pour être notifié des événements réseau, il suffit d'appeler WSAAsyncSelect.
Euh... Comment fait-on ça sous nux?
J'ai déjà essayé sans succès, et un des plus gros reproches que je faisais à nux (et les systèmes plus ou moins POSIX en général) est qu'il n'y a pas deux objets de synchronisation qui répondent à la même fonction d'attente...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Sous Qt ça marche nikel, donc en api natif que ce soit sous linux ou windows ça doit marcher. Et c'est bien appeler par le thread du programme.
Développeur d'Ultracopier
pour le monitoring de fichier/repertoire : http://www.linuxcertif.com/man/7/inotify/
pour les signaux : http://linux.die.net/man/2/signalfd
pour les events : http://linux.die.net/man/2/eventfd
pour les timers : http://manpages.ubuntu.com/manpages/..._create.2.html
Bonne lecture.
"The quieter you become, the more you are able to hear"
"Plus vous êtes silencieux, plus vous êtes capable d'entendre"
ah oui, c'est autre chose que les sem_create() et semget()...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager