erreur bizarre

 
Poster un nouveau sujet   Répondre au sujet    iprelax.fr Index du Forum -> HTTP
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
rayden
dummy mioche
dummy mioche


Inscrit le: 23 Fév 2004
Messages: 2

MessagePosté le: Lun Fév 23, 2004 6:53 pm    Sujet du message: erreur bizarre Répondre en citant

bonjour,
Je ne comprend pas comment il est possible d ecrire une telle chose sans que ça fasse une erreur ----> printf ("haha" "hoho");

Chez moi je le fait et ça plante alors que j inclue les meme fichiers .h :
Ca donne ça :
logintest1.c:49: error: syntax error before string constant
logintest1.c:49: warning: conflicting types for built-in function `printf'
logintest1.c:49: warning: data definition has no type or storage class


Poutant si j ecrit printf ("haha" "hoho"); quelque part dans le client gcc (pour http) , ça marche.

(je precise: je compile sous cygwin avec les bon fichiers d inclusion)

bizarre.... Cool
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Salemioche
salemioche
salemioche


Inscrit le: 05 Avr 2002
Messages: 350
Localisation: FR- BIOT

MessagePosté le: Lun Fév 23, 2004 7:00 pm    Sujet du message: Répondre en citant

ca n'a pas l'air de venir de ça l'erreur, copiez tous votre code pour voir
_________________
Creer son site - Hebergement - Jumeaux
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Yahoo Messenger MSN Messenger
rayden
dummy mioche
dummy mioche


Inscrit le: 23 Fév 2004
Messages: 2

MessagePosté le: Lun Fév 23, 2004 7:25 pm    Sujet du message: Répondre en citant

=============================================
Oublions l erreur car ça a l air de marcher. En fait je fais un truc tout simple.
-Je me connecte a www.salemioche.com au port 80.
-J envois 3 messages déclarés comme ceci :
char a1[] = "GET /index.html HTTP/1.1\r\n";
char a2[] = "Host: www.salemioche.com\r\n";
char a3[] = "\r\n";

en faisant:

writen(to_server_socket,a1,strlen(a1));
writen(to_server_socket,a2,strlen(a2));
writen(to_server_socket,a3,strlen(a3));

readn(to_server_socket,buf,PACKET_SIZE);
printf(buf);

et j obtiens :

HTTP/1.1 404 Not Found
Date: Mon, 23 Feb 2004 18:18:37 GMT
Server: Apache/1.3.26 (Unix) PHP/4.2.3
X-Powered-By: PHP/4.2.3
Transfer-Encoding: chunked
Content-Type: text/html

IL trouve pas la page ... et si je le fait a la main avec telnet sous dos ça fonctionne.

Voici le code complet totalement tiré du votre.(copyright Cool )
=============================================
#include <stdio.h>
#include <errno.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/socket.h>



#define PACKET_SIZE 1024

void appli();
int writen(int fd, char *ptr, int n);
int readn(int fd, char *ptr, int n);

int to_server_socket = -1;
char server_name[] = "www.salemioche.com"; /* nom du host du serveur */

int port = 80;

char a1[] = "GET /index.html HTTP/1.1\r\n";
char a2[] = "Host: www.salemioche.com\r\n";
char a3[] = "\r\n\r\n";


int main (int argc, char *argv[])
{
struct sockaddr_in serverSockAddr; /* addresse de la socket */
struct hostent *serverHostEnt; /* description du host serveur */
unsigned long hostAddr; /* addr du serveur */


printf ("haha hoho\n");

bzero(&serverSockAddr,sizeof(serverSockAddr));
/* converti l'adresse ip 9.100.1.1 en entier long */
hostAddr = inet_addr(server_name);

if ( (long)hostAddr != (long)-1)
bcopy(&hostAddr,&serverSockAddr.sin_addr,sizeof(hostAddr));
else /* si on a donne un nom */
{
serverHostEnt = gethostbyname(server_name);
if (serverHostEnt == NULL)
{
printf("probleme gethost\n");
exit(0);
}
bcopy(serverHostEnt->h_addr,&serverSockAddr.sin_addr,
serverHostEnt->h_length);
}

serverSockAddr.sin_port = htons(port); /* host to network port */
serverSockAddr.sin_family = AF_INET; /* AF_*** : INET=internet */
/* creation de la socket */

if ( (to_server_socket = socket(AF_INET,SOCK_STREAM,0)) < 0)
{
printf("probleme creation socket client\n");
exit(0);
}


/* requete de connexion */
if(connect(to_server_socket,(struct sockaddr *)&serverSockAddr,
sizeof(serverSockAddr))<0)
{
printf("probleme demande de connection\n");
exit(0);
}

appli();

/* fermeture de la connection */
shutdown(to_server_socket,2);
close(to_server_socket);
return 0;
}

void appli () {
char buf[PACKET_SIZE+1], *ptr;

buf[0] = 0x00;

writen(to_server_socket,a1,strlen(a1));
writen(to_server_socket,a2,strlen(a2));
writen(to_server_socket,a3,strlen(a3));

readn(to_server_socket,buf,PACKET_SIZE);
printf(buf);

// writen(to_server_socket,"\r\n\r\n",4);
readn(to_server_socket,buf,PACKET_SIZE);
printf(buf);


}

int writen(int fd, char *ptr, int n)
{

int nl, nw;
nl = n;
while ( nl > 0 ) {
nw = write(fd, ptr, nl);
if ( nw <= 0 )
return nw; /*error*/
nl -= nw;
ptr += nw;
}
return (n-nl);
}


int readn(int fd, char *ptr, int n){
int nl, nr;

nl = n;

while ( nl > 0 ) {
nr = read(fd,ptr,nl);
if (nr < 0 )
return nr; /*error*/
else
if ( nr == 0 )
break;
nl -= nr;
ptr += nr;
if ( *(ptr-2) == '\r' && *(ptr-1) == '\n' )
break;
}
*ptr = 0x00;
return (n-nl);
}
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    iprelax.fr Index du Forum -> HTTP Toutes les heures sont au format CET (Europe)
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Affilzen SARL : Mention légale