[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