J'essaye de créer un serveur qui utilise select() pour gérer plusieurs clients, contrairement au multi-threading que j'ai déjà accompli. Cependant, select() ne semble pas faire quoi que ce soit? J'ai tous les appels système nécessaires, par ex. socket() retourne à un int appelé listener. bind() puis listen(), tous avec une vérification d'erreur appropriée, qui ne renvoie aucun problème. Il compile également très bien.Problèmes Select() dans C (windows 7)
FD_ZERO(&fileDescriptors);
FD_ZERO(&tempSet);
.....
FD_SET(listener, &fileDescriptors);
fdmax = listener;
.....
while(1){
if(select(fdmax+1, &tempSet, NULL, NULL, &timeout) == -1){
//error occured
}
.....
}
Le client ne peut pas établir une connexion, mais WSAGetLastError() Retourne 0 du côté client. Et le serveur, ne sera jamais passé select(), en dehors de renvoyer 0 en raison d'un délai d'expiration. Im vraiment du mal à voir le problème dans mon code.
Désolé j'ai raté le peu de code où j'ai fait tempSet égal à fileDescriptors – Rick