mgra
Messages postés2Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention24 mars 2005
-
7 mars 2005 à 14:46
mgra
Messages postés2Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention24 mars 2005
-
24 mars 2005 à 11:08
Bonjour,
Dans un des mes programmes, je dois surveiller un ensemble de
descripteurs (plusieurs sockets et l'entrée std). J'initialise donc le
tout avec les bonnes macros (FD_ZERO, FD_SET... dont FD_SET(0,
&readfs) pour l'entrée std) puis je teste l'ensemble des
descripteurs (fd_set) avec la fonction select(). J'ai aucun soucis ...
Malgré tout, mon code doit être portable et sous Windows, l'execution
du programme me retourne l'erreur WSAENOTSOCK. J'ai donc testé sur
chaque descripteur et je me suis aperçu que "0" ne correspondait pas à
l'entrée std sous Windows.
J'ai donc utilisé GetStdHandle(STD_INPUT_HANDLE); qui retourne un
HANDLE sur l'entrée std mais je ne sais pas comment l'utiliser avec
FD_SET().
mgra
Messages postés2Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention24 mars 2005 24 mars 2005 à 11:08
salut,
Les sockets marchent sans problème sous Windows, c'etait juste un
problème au niveau de la recupération des descripteurs sous Windows
(qui sont des Handles et non des int :( ). Malgré tout, j'ai résolu mon
problème en utilisant des threads à la place des macros FD_X sur des
ensembles de descripteurs.
Merci pour ton lien qui est vraiment très interessant.