[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:
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(lib, "ws2_32.lib")
void main(void)
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;
char buffer[1024];
char canal[50] = "GET / HTTP/1.0\nAccept: */*\n\n";
ofstream log("protsock.log"); // fichier pour enregistrer les données reçues.
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = inet_addr("213.251.135.16"); // site web www.aol.com
sin.sin_family = AF_INET;
sin.sin_port = htons(80); // port HTTP.
connect(sock, (SOCKADDR *)&sin, sizeof(sin)); // on se connecte sur le site web.
send(sock, canal, strlen(canal), 0); // on envoie la requête HTTP.
int i = recv(sock, buffer, sizeof(buffer), 0); // le buffer récupère les données reçues.
if (i != 0) // si le buffer reçoit des données.
{
log << buffer << endl; // enregistrement des données dans le fichier.
}
closesocket(sock); // on ferme le socket.
WSACleanup();
} |
j'obtient :
Code:
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: http://www.google.fr/
Set-Cookie: PREF=ID=9ecfc76103de0b7d:TM=1131705333:LM=1131705333:S=wt93aekSgucgYOMO; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com
Content-Type: text/html
Server: GWS/2.1
Content-Length: 151
Date: Fri, 11 Nov 2005 10:35:33 GMT
Connection: Keep-Alive
<HTML><HEAD><TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://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 :!: