1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
#include <netdb.h>
#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main (int agrc, char ** argv)
{
int sock = 0;
char buff[512];
char * mesg = "GET http://lesite.org/~pmanglade/29041.html\n";
int nb_res = 0;
struct sockaddr_in serveur_addr;
struct hostent *serveur;
// creation de la socket
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
fprintf(stderr, "le socket est ratte");
exit(-1);
}
// recuperation des donnees dns du serveur
if ((serveur = gethostbyname("www.lesite.org")) < 0)
{
fprintf(stderr, "la recuperation du serveur a echoue");
exit(-1);
}
// initialisation de l'adresse
bzero((char *)&serveur_addr, sizeof(serveur_addr));
serveur_addr.sin_family = AF_INET;
bcopy((char *)serveur->h_addr, (char *)&serveur_addr.sin_addr.s_addr, serveur->h_length);
serveur_addr.sin_port = htons(80);
// etablissement de la connexion
if (connect(sock, &serveur_addr, sizeof(serveur_addr)) < 0)
{
fprintf(stderr, "la connexion a echoue");
exit(-1);
}
// envois de la requete
if (nb_res = write(sock, mesg, strlen(mesg)) < 0)
{
fprintf(stderr, "l'ecriture dans la socket a echoue");
exit(-1);
}
// reception de la reponse
bzero(buff, 512);
if(nb_res = read(sock, buff, 511) < 0)
{
fprintf(stderr, "la reception des infos a echoue");
exit(-1);
}
// affichage du resultat
printf("%s\n", buff);
return 0;
} |
Partager