12.07.2015 Views

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

k19-k11-orientacao-a.. - Departamento de Sistemas e Computação

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CHAT K19 184Quando um novo cliente se conecta ao chat, o método adicionaEmissor() permite que um novoemissor seja adicionada na coleção do distribuidor.Quando algum cliente envia uma mensagem, o método distribuiMensagem() permite que amesma seja enviada para todos os clientes conectados.5 No projeto K19-chat-server crie uma classe para <strong>de</strong>finir os receptores.1 import java . util . Scanner ;23 public class Receptor implements Runnable {4 private Scanner entrada ;5 private Distribuidor distribuidor ;67 public Receptor ( Scanner entrada , Distribuidor distribuidor ) {8 this . entrada = entrada ;9 this . distribuidor = distribuidor ;10 }1112 public void run () {13 while ( this . entrada . hasNextLine ()) {14 String mensagem = this . entrada . nextLine ();15 this . distribuidor . distribuiMensagem ( mensagem );16 }17 }18 }Código Java E.9: Receptor.javaCada receptor possui uma entrada <strong>de</strong> dados relacionada a um cliente conectado ao chat e o distribuidor.Para criação <strong>de</strong> um receptor, <strong>de</strong>vem ser passados a entrada relacionada a um cliente e odistribuidor através do construtor.Como o servidor <strong>de</strong> chat precisa receber simultaneamente as mensagens <strong>de</strong> todos os clientes,cada receptor será executado em uma thread por isso a classe Receptor implementa a interfaceRunnable.No método run(), o receptor entra em um laço esperando que uma mensagem seja enviada peloseu cliente para repassá-la ao distribuidor.6 No projeto K19-chat-server crie uma classe para <strong>de</strong>finir o registrador.1 import java .io. IOException ;2 import java .io. PrintStream ;3 import java . net . ServerSocket ;4 import java . net . Socket ;5 import java . util . Scanner ;67 public class Registrador implements Runnable {89 private Distribuidor distribuidor ;10 private ServerSocket serverSocket ;1112 public Registrador ( Distribuidor distribuidor , ServerSocket serverSocket ) {13 this . distribuidor = distribuidor ;14 this . serverSocket = serverSocket ;1516 }1718 public void run () {19 while ( true ) {20 try {21 Socket socket = this . serverSocket . accept ();184 www.<strong>k19</strong>.com.br

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!