C/Visual C - Lectura de paginas Web

 
Vista:

Lectura de paginas Web

Publicado por eltiolopez (3 intervenciones) el 10/01/2009 06:06:09
Hola a todos.

Estoy implementando un programa en C, y necesito que me baje el contenido de una web. Me explico: introduzco una IP de google, por ejemplo, y el puerto 80, y quiero que me descargue todo el contenido HTML dentro de un buffer. Esto es más o menos lo que hago:

int sd; // Socket descriptor
int tam; // Tamaño de la estructura sockaddr
int numbytes; // Numero de bytes recibidos
char buf_recepcion[255]; // Almacenamos lo que recibimos
struct sockaddr_in mi_estructura;

printf("Comenzando! ");

mi_estructura.sin_family = AF_INET;
mi_estructura.sin_port = htons(PUERTO);
inet_aton(DIRECCION, &(mi_estructura.sin_addr));
memset(&(mi_estructura.sin_zero),' ',8);

printf("Intentando conectar con %s:%d ",inet_ntoa(mi_estructura.sin_addr),ntohs(mi_estructura.sin_port));

tam = sizeof(struct sockaddr);

sd = socket(AF_INET, SOCK_STREAM, 0); // Socket de datagramas SOCK_DGRAM
if (sd == -1) {
printf("Error definiendo socket ");
return 1;
}

connect(sd, (struct sockaddr *)&mi_estructura, tam);

numbytes = recv(sd, buf_recepcion, sizeof(buf_recepcion), 0);

printf("%d bytes recibidos ",numbytes);

printf("Recibido el paquete %s",buf_recepcion);

printf("Fin del programa! ");

Con lo hecho, me parece que sí que llega a conectarse con la página, pero tras una pausa de unos segundos me contesta que ha recibido 0 bytes.

¿Alguna sugerencia?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder