Cliente Web (Navegador) sencillo en C bajo Linux
#include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <string.h> #include <stdlib.h> #include <unistd.h> char host_name[256] ; char file_name[256]; int port = 80; int main (int argc, char *argv[]) { char buf[8192]; char message[256]; int sd; struct sockaddr_in pin; struct hostent *nip_host; //int i = 0; /* for (i = 0 ; i <8192; i ++) buf[i]= ' '; for (i = 0 ; i <256; i ++) message[i]= ' ';*/ printf("Host:"); scanf("%s",host_name); if ((nip_host = gethostbyname(host_name)) == 0){ printf("Error al resolver el host\n"); exit(1); } bzero(&pin, sizeof(pin)); pin.sin_family = AF_INET; pin.sin_addr.s_addr = htonl(INADDR_ANY); pin.sin_addr.s_addr = ((struct in_addr * )(nip_host->h_addr))->s_addr; pin.sin_port = htons(port); if ((sd=socket(AF_INET,SOCK_STREAM,0)) == -1){ printf("Error al abrir el socket\n"); exit(1); } if(connect(sd, (void *)&pin,sizeof(pin)) == -1) { printf("Error al conectar el socket\n"); exit(1); } printf("Archivo: "); scanf("%s",file_name); sprintf(message, "GET /%s \n",file_name); printf("enviando el mensaje %s al servidor web...\n",message); if(send(sd,message,strlen(message),0) == -1){ printf("Error al enviar"); exit(1); } printf("...mensaje enviado .. esperando respuesta..\n"); if(recv(sd,buf,8192,0) == -1){ printf("Error al recibir la repuesta..\n"); exit(1); } printf("\nRespuesta del servidor:\n\n%s\n",buf); close(sd); return EXIT_SUCCESS; }
Quizá te interese :
#include #include #include #include #include #include #include #include #inclu ...
#include #include #include void cifrar (char *archivo, char *llave); void descifrar (ch ...
#include #include char bufer[500]; typedef struct swav { char Riff[4]; long longRi ...








