Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Qual a mágica do return na Classe DistribuirTarefas?

Eu percebi que o instrutor trocou a saída do case no "fim" de break para return. Coincidentemente ou não, agora o servidor se encerra sozinho independente do encerramento do "Cliente" (o que se queria inicialmente). Antigamente, o cliente precisava ser encerrado (Teclar no console) para o servidor também se encerrar. Qual a relação do return com o encerramento do Cliente e Servidor nesse caso?

2 respostas
solução!

É que o break no servidor ia apenas sair do switch, entrando logo em seguida em mais uma iteracao do while esperando um novo comando.

Com o return no servidor, a ideia é que se chega o comando "fim", ele sai do metodo inteiro, o run() o que essencialmente encerra a thread e encerra o servidor.

Obrigado, Sérgio. Eu não tinha pensado nessa possibilidade. Mas o comando funciona ainda em parte. Nos meus testes, quando há mais de um cliente, o servidor não se encerra de forma unilateral. De alguma forma ele se mantém ligado à thread do último cliente ativo.