Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1539 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Serveur Web ?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Serveur Web ?

n°298680
Lomba
Posté le 01-02-2003 à 10:31:41  profilanswer
 

Bonjour,
 
je suis en train de coder un petit serveur web en C, et j'avoue que j'ai des problèmes. Je n'arrive pas à écrire quelque chose de correct dans la socket.
Je m'explique :
je génère un header du type :
HTTP/1.1 200 OK\r\n
Content-Type: text/html\r\n
\r\n
Puis ensuite je balance le code html.
J'initialise mes chaînes de la façon suivante :
head = (char *)calloc(200, sizeof(char));
body = (char *)calloc(600, sizeof(char));
total = (char *)calloc(800, sizeof(char));
 
'calloc' est censé me mettre toute la zone à zéro.
Ensuite je fais :
strcat(total, head);
strcat(total, body);
 
Püis quand je veux écrire dans la socket, il me faut la taille du truc :
taille = sizeof(total);
Evidemment taille contient la taille complète de la zone, y compris si elle est vide.
Puis j'écrit :
write(sockfd, total, taille);
 
Bon, jusque là ça va... Le soucis c'est que le navigateur récupère bien l'en-tête et le corps, mais aussi plein de caractères cabalistiques après le dernier </HTML>.
J'imagine bien évidemment que c'est dû au 'taille' qui est trop grand par rapport à ma zone. Mais comme 'calloc' est censé avoir tout mis à zéro, j'arrive pas à saisir l'erreur !
 
Si quelqu'un s'y connaît bien et voit d'où peut venir mon problème, je suis preneur de toute aide :)
 
Merci
--  
lomba

mood
Publicité
Posté le 01-02-2003 à 10:31:41  profilanswer
 

n°298739
mrbebert
Posté le 01-02-2003 à 12:23:44  profilanswer
 

Pour être sur, mets toi même à 0 toute la chaîne.
 
2 trucs :
- pourquoi concaténer head et body ? Autant faire 2 appels à la fonction write.
- taille = sizeof(total) : ce ne serait pas plutot taille = strlen(total) :??:

n°298746
Clie
Posté le 01-02-2003 à 12:53:04  profilanswer
 

Tout a fait d'accord avec mossieur bebert, la tu recupere la taille d'un pointeur de char c'est a dire en general 4 octets, rein avoir avec la taille de ta chaine

n°298760
Lomba
Posté le 01-02-2003 à 13:24:10  profilanswer
 

Clie a écrit :

Tout a fait d'accord avec mossieur bebert, la tu recupere la taille d'un pointeur de char c'est a dire en general 4 octets, rein avoir avec la taille de ta chaine


Tout à fait d'accord avec vous deux :)
J'ai capté un peu plus tard que le strlen était vachement mieux pour le write...
 
Merci ;)
--  
lomba


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Serveur Web ?

 

Sujets relatifs
Serveur SMTP pour fonction mail() de PHP ?envoi d'un fichier local vers vers un serveur ftp
Serveur/ClientY'en a qui utilisent Web Dev ?
Programmation Web et caractères spéciaux.Active Directory - récuperé/insérer des infos depuis un panel WEB
Se connecter à une base d'un serveur Web ? -> RDS InsideAu secours ! Excécuter un Prog sur le serveur depuis une page Web
[Serveur Web] IIS + Php/Mysql[Serveur Web] Comment le personnaliser ???
Plus de sujets relatifs à : Serveur Web ?


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR