|
Bas de page | |
---|---|
Auteur | Sujet : Récupérer l'état d'une socket en sortie d'un select() |
v10ware | Bonjour,
Message cité 1 fois Message édité par v10ware le 12-11-2005 à 12:50:30 |
Publicité | Posté le 12-11-2005 à 11:02:10 |
Emmanuel Delahaye C is a sharp tool |
--------------- Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/ |
v10ware | Voila... Même si je continue à croire que c'est un problème de fonctions qui ne regardent que le C, donc je voulais mieux cibler... Bref, on va pas épiloguer. Une idée ? |
KangOl Profil : pointeur | RTFM
--------------- Nos estans firs di nosse pitite patreye... |
v10ware | Tiens, j'y avais pas pensé :|
Message édité par v10ware le 12-11-2005 à 13:03:13 |
KangOl Profil : pointeur | a tout hasard, le code de retour ? --------------- Nos estans firs di nosse pitite patreye... |
Taz bisounours-codeur |
Emmanuel Delahaye C is a sharp tool |
--------------- Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/ |
v10ware |
|
Publicité | Posté le 12-11-2005 à 13:30:51 |
Emmanuel Delahaye C is a sharp tool |
--------------- Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/ |
v10ware | Je pense avoir bien saisi le fonctionnement des fd_set et les macros associées, donc j'arrive à les construire et les lire. Simplement, après lecture du fd_set retourné par select(), je ne sais pas déterminer la raison pour laquelle select() a retenu un descripteur particulier dans le fd_set retourné.
|
Taz bisounours-codeur | select craint en terme de montée en charge et personnellement je ne trouve pas son API et ses fd_set pratiques. poll est mieux, plus performant et plus simple à utiliser à mon avis. Quant à epoll c'est vraiment génial, avec une sémantique beaucoup plus riche. |
v10ware | Je viens de passer à poll, qui a le mérite d'indiquer la raison pour laquelle une socket est sélectionnée. Mais ce que je ne saisis pas bien, c'est que quand le client ferme sa socket, poll() détecte une activité sur la socket associée côté serveur (jusque là, comme select()) mais en indiquant que la raison est qu'il y a des données à lire (le champ "revents" contient POLLIN) et non que la socket est fermée (POLLHUP).
|
Taz bisounours-codeur | bah t'as un POLLIN, et quand tu tentes un recv, là tu constates que EOF |
v10ware | Ce serait donc le caractère -65 que je reçois, EOF ?
Message édité par v10ware le 12-11-2005 à 20:46:39 |
Taz bisounours-codeur | EOF c'est EOF |
v10ware | Bon, après plusieurs tests, il semblerait que ce ne soit pas EOF qui soit lu sur la socket, mais NUL. Je ne sais pas si c'est correct, mais ça marche
|
Taz bisounours-codeur | NUL ? regarde le retour de recv, si c'est 0, c'est EOF. man recv |
v10ware | Le retour de recv est bien 0, donc je lisais dans un buffer rempli de caractères NUL puisqu'initiliasé juste avant la lecture.
|
Taz bisounours-codeur | n'hésite pas à consulter la VO du man
|
v10ware | Ce sont bien les pages anglaises que je consultais, mais le contenu dépend certainement des systèmes et/ou des versions des pages de man.
|
Publicité | Posté le |
Sujets relatifs | |
---|---|
avec insert/select es ce que je risque d'exploser le rollback segment? | [VBA-EXCEL 2003] recuperer le nom de tous les feuilles dans une listbx |
Récupérer Adresse IP Réseau [inet_ntoa] | SELECT sur plusieurs tables à la fois |
[bash] recuperer le resultat d'une commande SQL dans une variable bash | Récuperer une varible Javascript en php dans un formulaire |
SELECT DISTINCT dans un text et longtext | Récupérer la taille d'un tableau associatif |
Récupérer les valeurs boursières... | recuperer une adresse mail |
Plus de sujets relatifs à : Récupérer l'état d'une socket en sortie d'un select() |