begin process at 2010 02 10 16:26:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Réseau & Internet

 > 

Problème lors de la récéption de données en HTTP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème lors de la récéption de données en HTTP

jeudi 28 février 2008 à 21:49:39 | Problème lors de la récéption de données en HTTP

Fran6web

Bonjour,
Je suis en train de me faire un programme en C qui me récupère le contenu d'un page envoyé par protocole HTTP.

J'ai cependant un p'tit problème, lorsque je reçois la page il y a des caractères en plus qui se mette par ci par là.
Sous mon terminal ils apparaissent comme ceci :
<table cellpadding="0" cellsp\370\337acing="0"><tr><td valign="middle">

J'enregistre aussi le résultat dans un fichier et voici ce que ça rend dans le fichier :
<table cellpadding="0" cellspøßacing="0"><tr><td valign="middle">

Bien sur avec mon navigateur si j'affiche la source j'ai ça :
<table cellpadding="0" cellspacing="0"><tr><td valign="middle">


Voici la partie de mon script qui s'occupe de recevoir les données :
FILE* fichier = NULL;
fichier = fopen("test.txt", "w+");
               
while(recv(sock, buffer, sizeof(buffer), 0)) {
   printf("%s", buffer);
   fprintf(fichier, "%s", buffer);
                   
   for (buffer_none = 0 ; buffer_none <= sizeof(buffer) ; buffer_none++) {
     buffer[buffer_none] = "\0";
}


Auriez-vous la réponse à ce problème ?
vendredi 29 février 2008 à 01:58:36 | Re : Problème lors de la récéption de données en HTTP

aardman

Membre Club
Réponse acceptée !
Salut,
buffer ne contient pas une chaine mais un certain nombre d'octet, il faut sauver la valeur de retour du recv pour savoir combien exactement. tu ne peux donc pas faire de fprintf(fichier, "%s", buffer); ou tout autre manipulation du même genre qui supposerait que buffer contienne une chaine terminée par '\0'.
La boucle pour remettre tout buffer a 0 ne sert a rien (en plus d'etre fausse).
Un truc dans ce gout la ca devrait fonctionner un peu mieux:
int n;
while((n = recv(sock, buffer, sizeof(buffer) - 1, 0)) > 0) {
    buffer[n] = 0;
    fprintf(fichier, buffer);
}
il faut aussi ouvrir le fichier en mode binaire.

vendredi 29 février 2008 à 11:02:54 | Re : Problème lors de la récéption de données en HTTP

Fran6web

Salut aardman,
Je te remercie pour ta réponse qui semple avoir corrigé le problème des caractères en plus.


Cette discussion est classée dans : fichier, buffer, problème, données, http


Répondre à ce message

Sujets en rapport avec ce message

Problème : Récupération des données d'un Buffer pour mettre dans une EditBox [ par Memerosti ] BonjourMon problème est le suivant : J'ai ouvert un fichier, lu ses données, et jusque là ça va. Mais ensuite je voudrais récupérer ces données, pour [visual C++] problème (très bizarre) avec un CString [ par drinkmilk ] Bonjour, je fait une requête sur une base access. Je récupère les données ainsi: <T Problème avec type de données et opérateur >> lors de lecture de fichier [ par bny ] Bonjour, j'essaie de décoder un fichier de configuration(txt) j'ai certain problèmes avec les types de données et l'opérateur >> (flux de données).  J Récuper un mot dans un fichier [ par thegame88 ] Bonjour à tous,Je suis entrain de développer un pti prog je voudrais que ce prog me permette de récupérer les 16 derniers caractères d'un fichier.Ce f Translation Objet OpenGL à partir de données d'un fichier [ par zaraki21 ] Bonjour, je travaille actuellement sur une application en C++/OpenGL/GLUT. Je desire faire se déplacer un objet 3D avec des données issues d'un fichi Traduire données hexadecimal à partir d'un fichier XML [ par pgcyohome ] Bonsoir, Je ne connais pas grand chose aux fichiers XML, et j'aimerai vous soumettre ma problématique. J'ai en entrée un fichier avec des données he Cryptage de données d'un fichier [ par raphchar ] BonjourJe souhaiterai créer un programme pour crypter un fichier quelconque. Pour cela je voulais passer par la suite d'octes qui composent le fichier Base de données - Fichier [ par Kebims78 ] Bonjour à tous, Je suis actuellement plongé dans un projet utilisant la sauvegarde dans un fichier en local dans la même racine que mon exécutable. Je Stockage mesures XLS vers BDD [ par bfespi69 ] Bonjour à tous, Je dois apporter une modification à un logiciel que je développe sur C++ Builder 5. Dans ce logiciel, j'ai du développé du code pour Problème de gestion de la memoire - stockage de données 3D lues dans un fichier [ par serialtom ] Bonjour à tous, je vous contacte car j'ai un gros problème de gestion de la mémoire. voici mon contexte. j'ai implémenté une application qui sert a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales