Socket + http

Akylon Messages postés 4 Date d'inscription dimanche 30 mars 2003 Statut Membre Dernière intervention 3 mars 2004 - 6 oct. 2003 à 10:05
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 6 oct. 2003 à 18:24
Voila je veux recuperer des documents par le protocole http avec la fonction suivante:

void traitement(SOCKET client)
{
int lg;
char* requete="GET / HTTP/1.0"
lg=strlen(requete);
send(client,requete,lg,0);
lg=recv(client,requete,lg,0);
printf("%s",requete);
}

or celle-ci ne me recupere rien du tout, je ne vois pas se qui ne marche pas...........

3 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
6 oct. 2003 à 10:30
Salut,
1) Il faudrai ptet specifier quel document tu souhaite récuperer dans ta requete.
2) Ton buffer de reception est trop petit, il fait 15 octets.
J'en connais pas bcp des pages html qui tiennent sur 15 octets.
0
Akylon Messages postés 4 Date d'inscription dimanche 30 mars 2003 Statut Membre Dernière intervention 3 mars 2004
6 oct. 2003 à 13:42
je suis d'accord avec toi mon buffer est ici petit, mais imagine la page est vraiment enorme comment je fait pour recuperer des petits paquets par petit paquets, et cette requete elle doit me renvoyer le document a la racine du serveur....... je teste mon prog avec un serveur apache et dans le log d'accés il me met bien q'il a recu la requete qu'elle est valide.....
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
6 oct. 2003 à 18:24
Salut,
Je pensais que une requette HTTP etait de la forme
"GET monfichier.html HTTP/1.0"

Puisque tu cherches a recevoir un fichier, le mieux et d'en ouvrir un en ecriture (du meme nom que le fichier distant) et d'ecrire directement ce que tu recois dedans.
Un gros buffer d'un ou deux Ko, dans une boucle et c'est bon.
Par contre pour arreter cette boucle il faudrait que tu saches quand tu a recu tout ce que le serveur t'a envoyé, et la je ne peut pas t'aider je ne connais pas assez le protocole http. Il doit surement envoyer quelque chose a la fin pour que tu saches que le transfer est fini.
0
Rejoignez-nous