Cursos / Redes de Computadores / Redes de Computadores I / Aula
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 TCPPara 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):
Versão 5.3 - Todos os Direitos reservados