Trabalho redes 1
FACULDADE DE ENGENHARIA DE COMPUTAÇÃO
Laboratório de Redes de Computadores I Projeto 1
Prof. Edmar Rezende
Amauri Chagas Junior 08074999 Eduardo Mazzon Olivato 08093015
CAMPINAS 2012
Introdução
Neste projeto foi proposto pelo professor que implementássemos um servidor Web, com a versão 1.0 do protocolo HTTP. O servidor web é capaz de responder a requisição de um arquivo index.html e de arquivos com extensão .jpg, no caso do nosso projeto as imagens tem como nome lhama1, lhama2, lhama3 ou lhama4.
Descrição da atividade
O programa tem início com a inclusão das bibliotecas necessárias, feito como todas as outras atividades que desenvolvemos, sendo libraries.h e types.h definidas como mostram as figuras abaixo.
No procedimento pricipal do servidor são declaradas as variáveis necessárias para o controle do programa, declaração do sockets, numero da porta, tamanho, etc.. É atribuído em “num_port” o valor da porta que foi passada como parâmetro na execução do servidor.
Foi criado o socket do servidor da família TCP/IP (AF_INET) e específica que é do padrão TCP (SOCK_STREAM) e zero como ultimo parâmetro. A estrutura my_addr recebe as informações necessárias como a família de endereços e a porta para conexão, que foi convertido de bytes locais para bytes de rede com o comando htons. Se liga a todas as interfaces do computador (wlan, eth0, lo) através da atribuição com o comando INADDR_ANY.
Então o socket fica “escutando” por requisições de conexões. Se a conexão foi aceita cria um novo socket filho para tratar essa requisição via thread. Onde é capturado os valores do cliente, para que possa ser devolvido as requisições do mesmo. Na criação da thhread é então chamado o procedimento cliente que tratará tais requisições:
Na função cliente são declaradas as variáveis necessárias para sua utilização, como buffers, estruturas, variáveis do tipo