Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
rayden dummy mioche

Inscrit le: 23 Fév 2004 Messages: 2
|
Posté le: Lun Fév 23, 2004 6:53 pm Sujet du message: erreur bizarre |
|
|
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....  |
|
Revenir en haut |
|
 |
Salemioche salemioche


Inscrit le: 05 Avr 2002 Messages: 350 Localisation: FR- BIOT
|
Posté le: Lun Fév 23, 2004 7:00 pm Sujet du message: |
|
|
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 |
|
 |
rayden dummy mioche

Inscrit le: 23 Fév 2004 Messages: 2
|
Posté le: Lun Fév 23, 2004 7:25 pm Sujet du message: |
|
|
=============================================
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 )
=============================================
#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 |
|
 |
|
|
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
|
|