[C con Clase] c y página web sockets

Adolfo Cárdenas adocardenas en gmail.com
Mie Mayo 12 00:28:29 CEST 2010


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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100511/8b3e76f5/attachment.html>


Más información sobre la lista de distribución Cconclase