[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