IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

[socket] lire une page web


Sujet :

Windows

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [socket] lire une page web
    Bonjour,


    je suis nouveau dans ce forum aux allures gigantesques.

    J'ai un probléme pour une lire une page web a partird'une connection par socket au port 80 :

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #include<fstream.h>
    
    #include<winsock.h>
    
    #pragma comment&#40;lib, "ws2_32.lib"&#41;
        
    void main&#40;void&#41;
    &#123;
    
        WSADATA WSAData;
        WSAStartup&#40;MAKEWORD&#40;2,0&#41;, &WSAData&#41;;
            
        SOCKET sock;
        SOCKADDR_IN sin;
       
         char buffer&#91;1024&#93;;
         char canal&#91;50&#93; = "GET / HTTP/1.0\nAccept&#58; */*\n\n";
    
         ofstream log&#40;"protsock.log"&#41;; // fichier pour enregistrer les données reçues.
     
         sock = socket&#40;AF_INET, SOCK_STREAM, 0&#41;;    
           
         sin.sin_addr.s_addr = inet_addr&#40;"213.251.135.16"&#41;; // site web www.aol.com
         sin.sin_family = AF_INET;
         sin.sin_port = htons&#40;80&#41;; // port HTTP.
      
    	connect&#40;sock, &#40;SOCKADDR *&#41;&sin, sizeof&#40;sin&#41;&#41;; // on se connecte sur le site web.
    	send&#40;sock, canal, strlen&#40;canal&#41;, 0&#41;; // on envoie la requête HTTP.
    
    	int i = recv&#40;sock, buffer, sizeof&#40;buffer&#41;, 0&#41;; // le buffer récupère les données reçues.
       
        
    	 if &#40;i != 0&#41; // si le buffer reçoit des données.
    		  &#123;
    				  log << buffer << endl; // enregistrement des données dans le fichier.
    	 &#125;	
      
           closesocket&#40;sock&#41;; // on ferme le socket.
          WSACleanup&#40;&#41;;
    &#125;


    j'obtient :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    HTTP/1.0 302 Found
    
    Location&#58; http&#58;//www.google.fr/
    
    Set-Cookie&#58; PREF=ID=9ecfc76103de0b7d&#58;TM=1131705333&#58;LM=1131705333&#58;S=wt93aekSgucgYOMO; expires=Sun, 17-Jan-2038 19&#58;14&#58;07 GMT; path=/; domain=.google.com
    
    Content-Type&#58; text/html
    
    Server&#58; GWS/2.1
    
    Content-Length&#58; 151
    
    Date&#58; Fri, 11 Nov 2005 10&#58;35&#58;33 GMT
    
    Connection&#58; Keep-Alive
    
    
    
    <HTML><HEAD><TITLE>302 Moved</TITLE></HEAD><BODY>
    <H1>302 Moved</H1>
    The document has moved
    <A HREF="http&#58;//www.google.fr/">here</A>.
    
    </BODY></HTML>
    ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ

    Il commence a me lire la page html mais comme ci dessous il ne veux pas me lire la page en entier.
    Alors je me suis dis qu'en agrandissant la taille du tableau : buffer[1024] il me continuerais de lire la page mais non il me fais la même lecture avec les caracteres "Ì" en plus

    Voila merci

  2. #2
    Membre du Club Avatar de Aristote
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 56
    Points : 68
    Points
    68
    Par défaut
    Peut-être as-tu essayé HTTP 1.1 ?
    Qui te Permet d'économiser le nb de connection TCP suivant la taille de la page visitée.
    Téléchargement sans déconnectioN par rapport à HTTP 1.0.
    L'en-tête Content-Length permet au serveur d'indiquer au client la taille exacte du corps du message, ce qui permet au client de déterminer exactement quand celui-ci a été entièrement transmis.
    Il y a matière à creuser.
    -------------------------------------------------------------------

Discussions similaires

  1. [QST] Lire une page web
    Par hannibal.76 dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 18/10/2011, 21h11
  2. [Turbo Pascal] Lire une page web
    Par lex001 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 18/02/2009, 22h32
  3. Lire une page Web
    Par ft290 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/02/2009, 18h15
  4. Lire une page web en Qt
    Par thms92 dans le forum Qt
    Réponses: 4
    Dernier message: 28/06/2008, 09h25
  5. Lire une page web
    Par pi-2r dans le forum C++
    Réponses: 19
    Dernier message: 22/06/2006, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo