[C con Clase] sockets

Adolfo Cárdenas adocardenas en gmail.com
Mar Mar 30 00:34:16 CEST 2010


Perdón la librería que use es libwsock32.a y su correspondiente *-lwsock32*

El 30 de marzo de 2010 00:10, Adolfo Cárdenas <adocardenas en gmail.com>escribió:

> Gracias.
> Voy a buscar estos archivos. Aunque use libwmsock32.a con winsock.h y
> tambien desaparecio el error
> . ¿También es recomendable programar con estos? La función que estoy
> nhaciendo todavía no da el resultado que espero.
> Esta es la función que estoy tratando de hacer
> Lee una página web remota y muestra su contenido en MessageBoxes
>
> void leerpagina()
> {
>  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 = "www.mypagina.com";
>  request = "/";
>  hp = gethostbyname(hostname);
>  if (hp == NULL) { // do some error checking
>   MessageBox(NULL,"gethostbyname","",MB_OK); // herror(), NOT perror()
>   exit(1);
>  }
>  memcpy(&(address.sin_addr.s_addr),*(hp->h_addr_list),sizeof(struct
> in_addr));
>
>  if(h_errno){
>   MessageBox(NULL,"DNS 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);
>  }
>  ///printf("\n\nGET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n",
> request,hostname);
>  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();
> }
>
> //¿Podría decirme dónde está el error?
>
> /*Gracias.*/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100330/055d47f3/attachment.html>


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