Advertisement
Guest User

qsdf

a guest
Feb 14th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.96 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <sys/types.h>
  5. #include <sys/socket.h>
  6. #include <netinet/in.h>
  7. #include <arpa/inet.h>
  8. #include <netdb.h>
  9.  
  10.  
  11. int connectServeurWeb(char* IP,int port);
  12. int envoieRequeteHTTP(int socket, char* requete);
  13. int tailleRequeteLecture(int socket);
  14. char* litHTML(int socket);
  15.  
  16. int main()
  17. {
  18.     char* contenu;
  19.     contenu=litHTML(connectServeurWeb("194.254.119.228",80));
  20.     printf("%s",contenu);
  21.     return 0;
  22. }
  23.  
  24. int connectServeurWeb(char* IP,int port)
  25. {
  26.     int err;
  27.     int sd;//le socket
  28.     struct sockaddr_in sa;
  29.     sd = socket(PF_INET, SOCK_STREAM, 0) ; // CONNEXION TCP/IP
  30.     if(sd == -1)
  31.     {
  32.         //afficher erreur + code erreur
  33.         return -1;
  34.     }
  35.     sa.sin_family=AF_INET;
  36.     sa.sin_port=htons(port);
  37.     sa.sin_addr.s_addr=(long)inet_addr(IP);
  38.     strerror( (long)sa.sin_addr.s_addr );
  39.     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
  40.     if(err==-1)
  41.     {
  42.         return -1;
  43.     }
  44.     return sd;
  45. }
  46.  
  47. int envoieRequeteHTTP(int socket, char* requete){
  48.  
  49.     int tailleRequete=strlen(requete);
  50.     char* buffer= (char*)malloc(sizeof(char)*tailleRequete);
  51.     strcpy(buffer,requete);
  52.  
  53.     int tailleRetourEnvoie = send(socket,buffer,tailleRequete,0);
  54.  
  55.     return tailleRetourEnvoie;
  56.  
  57. }
  58. /*
  59. char* litHTML(int socket){
  60.     int n=1;
  61.     char* bufferLecture=(char*)malloc(1*sizeof(char));
  62.     while((recv(socket,bufferLecture,n,0))!=0){
  63.         n++;
  64.         bufferLecture = (char*)realloc(bufferLecture,n*sizeof(char));
  65.     }
  66.  
  67.     return bufferLecture;
  68. }
  69. */
  70. char* litHTML(int socket){
  71.  
  72. int n=1;
  73.     char* bufferLecture= (char*) malloc(sizeof(char)*n);
  74.     int ret = recv(socket,bufferLecture,n,0);
  75.     while(ret!=0) {
  76.  
  77.         ret = recv(socket,bufferLecture,n,0);
  78.         n++;
  79.         bufferLecture=(char*)realloc(bufferLecture,sizeof(char)*n);
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement