MC833A - 2019
Programação de Redes de Computadores

Exercício 2 - Parte 1: Implementação de Aplicação Cliente/Servidor com Sockets TCP

Critérios para entrega do exercício
Atividade
Passos:
  1. Analise os códigos dos programas a seguir e procure nas páginas de manual do Linux, a descrição das funções que não conhecer. Procure também nos códigos a natureza dos parâmetros que cada programa deve receber, se for o caso. Explique o funcionamento das funções inet_pton, htons e htonl. man socket apropos htons
  2. Compile e execute os programas cliente.c e servidor.c em uma mesma máquina. A função bind reportou algum erro? Em caso afirmativo, qual a sua causa? Se necessário, modifique os programas de forma que este erro seja corrigido e informe quais modificações foram realizadas.
  3. Com as modificações feitas, re-execute os programas em uma mesma máquina e em máquinas diferentes. Quais as saídas dos programas?
  4. Através de ferramentas existentes no sistema operacional, como você comprova, durante a execução em máquinas diferentes, que os códigos estão realizando uma comunicação via rede?
  5. Adicione comentários ao código.
  6. Modifique o programa cliente.c para que ele obtenha as informaçpões do socket local (# IP, # porta local) através da função getsockname(). Modifique o programa servidor.c para que este obtenha as informações do socket remoto do cliente (# IP remoto, # porta remota), utilizando a função getpeername(). Imprima esses valores na saída padrão.
  7. Mantenha o binário do servidor.c executando em uma máquina A e execute três vezes seguidas o binário do cliente.c em uma máquina B. Observando a saída do comando netstat, qual das duas máquinas (A ou B) ficam no estado TIME_WAIT? Explique porque a outra máquina não fica nesse estado.
  8. O programa telnet pode ser usado no lugar do binário do client.c? Por que? Caso o telnet possa ser usado, copie a saída do servidor e da execução do telnet. Cite uma modificação no servidor.c que impediria a utilização do telnet

Instituto de Computação
Universidade Estadual de Campinas
Av Albert Einstein 1251
13083-852 Campinas, SP - Brazil