Entree std sous Windows

Signaler
Messages postés
2
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
24 mars 2005
-
Messages postés
2
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
24 mars 2005
-
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().





Des idées ?


Merci

2 réponses

Messages postés
237
Date d'inscription
lundi 20 mai 2002
Statut
Membre
Dernière intervention
22 juillet 2011
2
Salut :)



Sous Windows il faut d'abord utiliser la fonction WSAStartup

Voici un très bon tut sur les sockets : http://www.ecst.csuchico.edu/~beej/guide/net/html/

Section 1.5 "Note to Windows Programmers"

@+ et bon codage ;)
Messages postés
2
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
24 mars 2005

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.