Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <netdb.h>
- int connectServeurWeb(char* IP,int port);
- int envoieRequeteHTTP(int socket, char* requete);
- int tailleRequeteLecture(int socket);
- char* litHTML(int socket);
- int main()
- {
- char* contenu;
- contenu=litHTML(connectServeurWeb("194.254.119.228",80));
- printf("%s",contenu);
- return 0;
- }
- int connectServeurWeb(char* IP,int port)
- {
- int err;
- int sd;//le socket
- struct sockaddr_in sa;
- sd = socket(PF_INET, SOCK_STREAM, 0) ; // CONNEXION TCP/IP
- if(sd == -1)
- {
- //afficher erreur + code erreur
- return -1;
- }
- sa.sin_family=AF_INET;
- sa.sin_port=htons(port);
- sa.sin_addr.s_addr=(long)inet_addr(IP);
- strerror( (long)sa.sin_addr.s_addr );
- err = connect(sd, (struct sockaddr *)&sa, sizeof(sa)) ;//1er paramètre = la socket qu'on viens de créer , 2ème= adresse de la struct qu'on vient de remplir, 3ème = taille de la structure
- if(err==-1)
- {
- return -1;
- }
- return sd;
- }
- int envoieRequeteHTTP(int socket, char* requete){
- int tailleRequete=strlen(requete);
- char* buffer= (char*)malloc(sizeof(char)*tailleRequete);
- strcpy(buffer,requete);
- int tailleRetourEnvoie = send(socket,buffer,tailleRequete,0);
- return tailleRetourEnvoie;
- }
- /*
- char* litHTML(int socket){
- int n=1;
- char* bufferLecture=(char*)malloc(1*sizeof(char));
- while((recv(socket,bufferLecture,n,0))!=0){
- n++;
- bufferLecture = (char*)realloc(bufferLecture,n*sizeof(char));
- }
- return bufferLecture;
- }
- */
- char* litHTML(int socket){
- int n=1;
- char* bufferLecture= (char*) malloc(sizeof(char)*n);
- int ret = recv(socket,bufferLecture,n,0);
- while(ret!=0) {
- ret = recv(socket,bufferLecture,n,0);
- n++;
- bufferLecture=(char*)realloc(bufferLecture,sizeof(char)*n);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement