Este exemplo implementa um pequeno cliente WWW que se conecta a um servidor pré-definido e exibe sua página web principal.
#include <stdio.h> #include <unistd.h> #include <resolv.h> #include <sys/socket.h> #define PORT 80 #define SERVER "127.0.0.1" #define BUFSIZE 256 int main() { int sock, bytes; struct sockaddr_in server; char *pedido, resposta[BUFSIZE]; /* cria um socket TCP */ sock = socket (AF_INET, SOCK_STREAM, 0) ; if ( sock < 0 ) { perror ("Erro na criação do socket"); exit(1); } /* inicializa a estrutura com endereço/porta do servidor */ bzero (&server, sizeof(server)); server.sin_family = AF_INET; server.sin_port = htons(PORT); if ( inet_aton (SERVER, &server.sin_addr.s_addr) == 0 ) { perror("Erro no endereço do servidor"); exit(1); } /* conecta ao servidor */ if ( connect (sock, (struct sockaddr*)&server, sizeof(server)) != 0 ) { perror("Erro na conexão"); exit(1); } /* envia comando HTTP ao servidor */ pedido = "GET / HTTP/1.0\n\n" ; write (sock, pedido, strlen (pedido)) ; /* resposta do servidor vai para STDOUT */ while ( (bytes = read (sock, &resposta, BUFSIZE)) > 0 ) write (STDOUT_FILENO, resposta, bytes); /* encerra a conexão */ close (sock); return 0; }