#include <stdio.h>
#include <netinet/in.h>
#include <netdb.h>
#include <unistd.h>

/* Carles Pina i Estany - carles@pinux.info
 * Febrer 2004*/

/* Es connecta a un servidor Web i agafa una pàgina Web */

/*PROTOCOL HTTP:
 *
 * GET /index.php HTTP/1.1
 * Host: www.pinux.info:80

 */

#define SERVIDOR_I_PORT "pinux.info:80"
#define SERVIDOR "pinux.info"
#define PAGINA_WEB "/prova.html"

int main () {
	int fd;
	struct sockaddr_in desti;
	struct hostent *he;
	char buffer[100];
	int llegit;

	fd=socket(AF_INET,SOCK_STREAM,0);

	he=gethostbyname("pinux.info");
	desti.sin_family=AF_INET;
	desti.sin_port=htons(80);

	desti.sin_addr=*((struct in_addr*)he->h_addr);

	connect(fd,(struct sockaddr*)&desti,sizeof(struct sockaddr));

	//podem fer servir el fd de forma "normal"

	snprintf(buffer,sizeof(buffer),"GET /prova.html HTTP/1.1\n");
	write (fd,buffer,strlen(buffer));

	snprintf(buffer,sizeof(buffer),"Connection: close\n");
	write (fd,buffer,strlen(buffer));


	snprintf(buffer,sizeof(buffer),"Host: www.pinux.info:80\n\n");
	write (fd,buffer,strlen(buffer));

	printf("Començo a llegir\n");

	while ((llegit=read(fd,buffer,sizeof(buffer)))>0) 
		write (1,buffer,llegit);

	close(fd);
	return(0);
}
