Bonjour,
Je suis en train de créer un petit serveur HTTP et j'ai un probleme lors de la lecture des requetes des clients...
J'ouvre bien un thread a la connexion d'un client, dans ce thread, je dois lire la requete effectué par le navigateur.
Je fais donc un :
"Le fin de requete" ne s'affiche jamais !!! Pourtant quand le serveur a tout lu, le read devrait me renvoyer 0 et ce n'est pas le cas. Une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 char buffer[100]; int lecture; do{ lecture = read( _fdClient, buffer, sizeof(buffer)); if ((int)sizeof(buffer)>lecture){ buffer[lecture] = 0; } cout << buffer << endl; } while(lecture>0); cout <<"Fin de la requete"<<endl;
Merci de votre aide.
PS : Apres un peu plus de recherche, il semblerait que le read soit bloquant, ne souhaitant pas rendre mon socket non bloquant que faire pour contourner ce soucis ?
Je pourrais tres bien mettre un char buffer[4096] pour tout lire d'un coup et encore, si la requete est plus grande, je peux pas le gérer....
Une solution pour gérer tous les cas ? MERCI à vous.
Partager