[C con Clase] c y página web sockets
Jorge Rodríguez
yitano en gmail.com
Mie Mayo 12 02:08:34 CEST 2010
El problema está en la solicitud HTTP que estás realizando.
Una solicitud HTTP de una página tiene una sintaxis parecida a esta:
GET /ruta/al/directorio/archivo HTTP/1.1
Host: www.dominio.com
En el caso de querer acceder a www.algo.com/archivo.php la petición debería
quedar así:
GET /archivo.php HTTP/1.1
Host: www.algo.com
Con eso debería funcionarte si no me he equivocado.
Un saludo.
2010/5/11 Adolfo Cárdenas <adocardenas en gmail.com>
> Buenas Cómo estan? Tengo la siguiente funcion
>
> void leerpaginaweb(char* direcpagina)
> {
> MessageBox(NULL,direcpagina,"",MB_OK);
> WSADATA wsadata;
> struct sockaddr_in address;
> struct hostent*hp;
> int sd;
> char *hostname,*request,*cp;
> FILE *local;
> char buff[BUFSIZ];
> int i,l,nrv;
> WSAStartup(0x0101,&wsadata);
> hostname = direcpagina;
> request = "/";
> hp = gethostbyname(hostname);
> if (hp == NULL) {
> MessageBox(NULL,"gethostbyname","error",MB_OK);
> exit(1);
> }
> memcpy(&(address.sin_addr.s_addr),*(hp->h_addr_list),sizeof(struct
> in_addr));
>
> if(h_errno){
> MessageBox(NULL,"DNS error","error",MB_OK);
> exit(1);
> }
> address.sin_family = AF_INET;
> address.sin_port = htons(80);
> sd = socket(AF_INET,SOCK_STREAM,0);
> if(sd == 0) exit(1);
> if(connect(sd,(struct sockaddr *)&(address),
> sizeof(struct sockaddr_in)) == -1){
> MessageBox(NULL,"Connection failed","",MB_OK);
> exit(1);
> } else {
> MessageBox(NULL,"connect() ejecutado con exito!","",MB_OK);
> }
> sprintf(buff,"GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n",
> request,hostname);
> l = strlen(buff);
> send(sd,buff,l,0);
> do{
> nrv = recv(sd,buff,BUFSIZ,0);
> if(nrv > 0) MessageBox(NULL,buff,"",MB_OK); else break;
> }while(1);
> WSACleanup();
> }
>
> --------------------------------------------------------------------------------
> Que lee una pagina Le envío como parámetro por ejemplo www.algo.com
> La función me muestra en mensajes el contenido de la página
> es decir el archivo index.html o index.php
> La pregunta es ¿cómo puedo leer otro archivo que esté al lado del
> index.html?
> Puse como parámetro www.algo.com/archivo.php y me salió error
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100512/11ab8cc0/attachment-0001.html>
Más información sobre la lista de distribución Cconclase