sebastienmz
Messages postés139Date d'inscriptionmardi 16 mai 2006StatutMembreDernière intervention23 juin 2008
-
23 janv. 2007 à 18:57
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 2012
-
23 janv. 2007 à 21:17
Bonjour a toutes et a tous !
voila j'ai du code qui télécharge l'image qui se trouve en haut de votre écran de cppfrance a gauche de fiche mais j'arrive qu'a récupèrer 7 octet voila mon code :
#include <winsock2.h>
#include <stdio.h>
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20124 23 janv. 2007 à 21:17
Salut,
Pas étonnant que ca marche pas, avec tout les strlen qu'il y a dans le code...
Refléchis un peu a ce que cette ligne fait: fwrite(body, strlen(body),1,F).
Le même probleme se pose quand tu fais un printf des données que tu
recois, rien ne te dis qu'il s'agit bien d'une chaine de caractere
valide (qui est terminée par un '\0').
Pour refaire ca en plus propre, je procederais comme ca:
1) tu met tout ce que tu recois dans un buffer (boucle de recv),
evidemment il faut utiliser memcpy et pas strcpy pour copier les
données, et pour la longeur des données recues il faut utiliser le
retour du recv, et surtout pas utiliser strlen.
2) au début de ton buffer se trouve la réponse du serveur, qui se
termine par \r\n\r\n: tu trouve sa position (au passage tu pourra, dans
un second temp, extraire le code d'erreur http et le champ
Content-Length, ca peut etre utile).
3) tu écris tout ce qui se trouve apres la réponse dans ton fichier.