Sockets et appel système "select()" [C] - C - Programmation
Marsh Posté le 16-04-2004 à 22:08:47
Chose promie, chose due, voici juste les parties "intéressantes" du serveur et du client :
Le serveur :
Code :
|
Le client :
Code :
|
Marsh Posté le 16-04-2004 à 22:09:25
c'est à toi de faire un FD_SET au début je pense pour les initialiser
Marsh Posté le 17-04-2004 à 16:25:49
Lockness a écrit : Bonjour tout le monde, |
Au pif-ô-mètre, le problème me semble venir du code retour du select qui n'est pas testé. A savoir si select retourne 0, votre code effectue quand même le FD_ISSET or, pour peu que le set retourné par le select soit vide dans ce cas, il est fort possible que ça chie un max.
Marsh Posté le 16-04-2004 à 22:03:01
Bonjour tout le monde,
Je suis en train de coder une application client/serveur se basant sur l'appel système select(). Le problème est que le FD_ISSET() (macro détectant qu'un descripteur de fichiers a été utilisé) est vrai, même si le client n'a rien envoyé !
Note importante : vous trouverez dans la première réponse à ce message juste les parties du code "intéressantes". Dans ce message, j'ai volontairement mis l'intégralité (enfin, c'est pas non plus monstreux !) des deux codes source (client/serveur).
Voici le code du serveur :
Vous remarquez donc que dès que le serveur reçoit un message du client, il affiche un point ("." ). Or, avec le client ci-dessous (qui n'envoie que deux messages), le serveur affiche une infinité de points !
Le code du client :
Quelqu'un pourrait-il m'aider à résoudre ce problème (tout bete en plus) ?
Message édité par Lockness le 16-04-2004 à 22:10:39