begin process at 2012 02 11 10:21:52
  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 probleme de zero binaire dans un enregistrement [ par thefifou ] Bonjour a tous, Je vous ecris afin de trouver un peu d'aide. Mon problème est le suivant: Je dois lire, ligne par ligne, un fichier en entrée, manipul Problème pour calculer le temps reel d'un fichier midi [ par djeman ] Voila j'ai un projet de clone de Frets on Fire, qui est un clone de guitar hero. Les évènements, apparition d'une note, indication in game, ... sont fichier en C [ par Zworykin ] Bonjour à tous, Voila dans le cadre d'un projet, je dois établir un fichier pour mes données en C. alors je sauvegarde bien tout avec fprintf dans un problème lors de la lecture d'un fichier [ par pagoda ] Bonjour, j'ai un souci avec un programme que je dois faire dans le cadre d'un projet pour mon école d'ingé. Je dois en effet réaliser un programme q enregistrement de buffer dans un fichier [ par ekto45 ] Bonjour Je bosse sur une interface CVI/labwindows ( langage C) et je dois récupérer grâce à des requêtes MODBUS que j'envoie sur mon port COM des don


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,936 sec (3)

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