Cursos / Redes de Computadores / Redes de Computadores I / Aula

arrow_back Aula 14 - Protocolo UDP

Programa TCP servidor

O código do programa servidor é ligeiramente diferente do cliente, pois ele precisa realizar algumas tarefas a mais que o cliente. O código do servidor é mostrado na Figura 4.

Inicialmente, é necessário solicitar a porta desejada ao sistema operacional. Depois disso, o programa servidor tipicamente entra em loop infinito, uma vez que os servidores devem executar indefinidamente. Dentro desse loop o programa deve esperar que algum cliente conecte e aceitar essa nova conexão. Quando isso ocorre, deve ler os dados enviados pelo cliente, que tipicamente contêm alguma solicitação, e processar essa solicitação, que poderia ser, por exemplo, o pedido de uma página web. A seguir, o servidor tipicamente envia dados para o cliente, por exemplo, a página web solicitada. De modo semelhante ao cliente, podem existir várias chamadas a Enviar_dados e Receber_dados dentro do loop do servidor.

Finalmente, o servidor encerra a conexão e volta para o início do loop para esperar por novas conexões. Quando algum evento causar o encerramento do programa servidor a porta que havia sido solicitado ao sistema operacional é liberada.

Figura 4 - Exemplo de programa servidor usando TCP

Para listar as os programas que estão esperando conexões TCP, e em que portas, em uma máquina Linux, digite:

Cada letra no comando é chamada um flag e tem o significado descrito a seguir (observe que a única diferença do comando utilizado no cliente é o flagl):

  • t: listar apenas informações a respeito de conexões TCP (as informações sobre comunicações usando UDP, por exemplo, não seriam mostradas).
  • n: mostrar todas as informações, como números, sem tentar traduzir para o nome equivalente (exemplo: endereços IP e números de porta).
  • l: mostrar as portas em que as aplicações estão escutando (esperando conexão).
  • p: mostrar o nome do processo (programa) que está usando a conexão.

Versão 5.3 - Todos os Direitos reservados