#02 - Cliente-servidor com sockets TCP/IP: delimitação de mensagens e half-close
Objectivos
Padrões de pedido-resposta em sistemas cliente-servidor; delimitação de mensagens trocadas (pedidos e respostas); manutenção de estado no servidor; indicação de fim de sessão por meio de half-close.
Novas chamadas ao sistema
#include <sys/socket.h> int shutdown(int s, int how); how: SHUT_RD, SHUT_WR, SHUT_RDWR
Exercício proposto
Implemente um cliente e um servidor de 'máquina registadora': quando receber um número enviado por um cliente, o servidor devolve a soma de todos os números até então enviados por esse cliente.
- Os números devem ser transmitidos em formato de texto, e terminados por
\n
. - Um cliente indica ao servidor que deseja terminar a sessão através de
half-close por meio de
shutdown
, devendo o servidor em seguida enviar o número de itens processados para esse cliente.