Este aplicativo implementa um sistema de chat multithread simples. Consiste em um cliente e um servidor que se comunicam através de sockets para trocar mensagens.
O arquivo Atende_Cliente.java
contém a implementação do servidor. A classe Atende_Cliente
estende a classe Thread
e é responsável por lidar com as conexões de clientes individuais. Aqui está o funcionamento básico do servidor:
- O servidor cria um socket e aguarda as conexões dos clientes.
- Quando um cliente se conecta, é criada uma nova instância da classe
Atende_Cliente
para atender aquele cliente específico. - O objeto
Atende_Cliente
lê as mensagens enviadas pelo cliente e as encaminha para todos os outros clientes conectados. - O servidor continua ouvindo por novas mensagens até que o cliente envie a mensagem "exit" para encerrar a conexão.
- Quando a conexão é encerrada, o objeto
Atende_Cliente
fecha os fluxos de entrada e saída e fecha o socket.
O arquivo Cliente.java
contém a implementação do cliente. Aqui está o funcionamento básico do cliente:
- O cliente cria um socket e tenta se conectar ao servidor em um determinado endereço IP e porta.
- Se a conexão for bem-sucedida, o cliente cria uma thread separada, chamada
Ouvir
, para ouvir as mensagens recebidas do servidor. - O cliente lê as mensagens digitadas pelo usuário no console e as envia para o servidor.
- O cliente continua lendo e enviando mensagens até que o usuário digite a mensagem "exit" para encerrar a conexão.
- Quando a conexão é encerrada, o cliente fecha o fluxo de saída e o socket.
Para executar o aplicativo de chat, siga as etapas abaixo:
- Compile os arquivos Java usando o compilador Java. Certifique-se de ter o JDK (Java Development Kit) instalado no seu sistema.
javac Atende_Cliente.java javac Cliente.java
- Abra duas janelas do terminal ou prompt de comando.
- Em uma janela, execute o seguinte comando para iniciar o servidor:
java Chat.Cliente.Servidor.Atende_Cliente
- Na outra janela, execute o seguinte comando para iniciar o cliente:
java Cliente.Cliente
- Agora você pode digitar mensagens no cliente e elas serão enviadas para o servidor e encaminhadas para todos os clientes conectados.
- Certifique-se de executar o servidor antes de iniciar o cliente, caso contrário, o cliente não poderá se conectar.
- O aplicativo de chat implementado aqui é um exemplo simples e não possui recursos avançados de segurança, autenticação ou criptografia. É apenas uma demonstração de como a comunicação cliente-servidor pode ser estabelecida usando sockets em Java.
- Você pode executar várias instâncias do cliente em diferentes terminais ou em diferentes máquinas na mesma rede para testar a comunicação entre vários clientes.