All pastes #441950 Raw Edit

Client

public java v1 · immutable
·published 2007-04-15 22:56 UTC
rendered paste body
package client;// pacotes do nucleo do Javaimport java.io.*;import java.net.*;// Pacotes se extens? de Javaimport javax.swing.*;public class Client{   /**         *         */        private static final long serialVersionUID = 1L;   private ObjectOutputStream output;   private ObjectInputStream input;   private String message = "";   private String chatServer;   private Socket client;   public Controladora controladora;      // inicializa chatServer e configura a GUI   public Client( String host )   {      // configura o servidor ao qual o cliente se conecta      chatServer = host;      runClient();   }   // conecta-se ao servidor e processa as mensagens do servidor   public void runClient()   {      // conecta ao servidor, obt? fluxos, processa a conex?      try {         // Etapa 1: cria um Socket para fazer a conex?         connectToServer();         // Etapa 2: obt? os fluxos de entrada e de sa?a         getStreams();         // Etapa 3: processa a conex?         processConnection();         // Etapa 4: fecha a conex?         closeConnection();      }      // servidor fechou a conex�      catch ( EOFException eofException ) {    	 jaFechou();         System.out.println( "\nServidor terminou a conexao" );      }      // processa problemas na comunica�o com o servidor      catch ( IOException ioException ) {         ioException.printStackTrace();      }   }   private void jaFechou()   {	   controladora.sendToDisplayArea("\nServidor terminou a coenxao");   }   // obt� fluxos para enviar e receber dados   private void getStreams() throws IOException   {      // configura fluxo de sa�a para objetos      output = new ObjectOutputStream(         client.getOutputStream() );      // descarrega o buffer de sa�a para enviar informa�es e cabe�lho      output.flush();      // configura o fluxo de entrada para objetos      input = new ObjectInputStream(         client.getInputStream() );      controladora.sendToDisplayArea( "\nRecebeu dados de E/S\n" );   }   // conecta-se ao servidor   private void connectToServer() throws IOException   {	   controladora.sendToDisplayArea( "Tentando conectar-se\n" );      // cria Socket para fazer a conex? ao servidor      client = new Socket(         InetAddress.getByName( chatServer ), 5000 );      // exibe informa?es sobre a conex?      controladora.sendToDisplayArea( "Conectado a: " + client.getInetAddress().getHostName() );   }   // processa a conex? com o servidor   private void processConnection() throws IOException   {      // processa mensagens enviadas do servidor      do {         // l?a mensagem e a exibe                 	 try {				message = ( String ) input.readObject();				controladora.sendToDisplayArea( "\n" + message );			} catch (ClassNotFoundException e) {				// TODO Auto-generated catch block				e.printStackTrace();				JOptionPane.showMessageDialog(null, "Aqui cagou tudo" + e);			}      } while ( !message.equals( "SERVER>>> TERMINATE" ) );   }  // fim do m?odo processConnection   // fecha fluxos e soquete   private void closeConnection() throws IOException   {	   controladora.sendToDisplayArea( "\nFechando a conex�" );      output.close();      input.close();      client.close();   }      void sendData( String message )   {      // envia objeto para o servidor      try {    	  controladora.sendToDisplayArea("\naqui ele deveria estar mandando");    	  output.writeObject( "CLIENT>>> " + message );    	  controladora.sendToDisplayArea("\nescreve o objeto");         output.flush();                  controladora.sendToDisplayArea("\nflusha");      }      // processa problemas no envio do objeto      catch ( IOException ioException ) {    	  controladora.sendToDisplayArea( "\nError writing object" );      }   }}  // fim da classe client