Um Chat Multiusuário é uma aplicação de bate-papo, que permite que várias pessoas se comuniquem entre si em tempo real, usando apenas o terminal (linha de comando).
- Aprender programação de redes em especial WebSocket.
- Entender melhor como funciona a comunicação entre computadores (Cliente-Servidor).
- Trabalhar com a Interface de Linha de Comando (CLI).
- Praticar Programação Concorrente com Threads.
- Desenvolver a lógica de programação.
- Java JDK 8+ instalado.
- Terminal ou prompt de comando.
- Arquivos
Server.java
,Client.java
eClientHandler.java
compilados.
- Clone ou baixe o projeto no seu computador.
- Abra o terminal na pasta do projeto.
- Compile todos os arquivos Java:
javac Server.java Client.java ClientHandler.java
- Inicie o servidor (em uma aba/janela do terminal):
java Server
- Abra outro terminal e execute um cliente:
java Client
- Digite seu nome de usuário e comece a enviar mensagens para o grupo.
-
Cliente se conecta → manda o nome para o servidor.
-
Servidor cria um
ClientHandler
para ele. -
Quando cliente envia mensagem:
-
Vai para o servidor.
-
Servidor repassa (
broadcast
) para todos os outros clientes.
- Quando servidor envia algo para o cliente:
- A thread de
listenForMessage()
lê e imprime no terminal.
Se você abrir sua porta para a internet (por exemplo, fazendo port forwarding no seu roteador), qualquer pessoa com seu IP público e a porta poderá tentar se conectar ao seu servidor.
As mensagens trocadas entre os clientes e o servidor podem ser interceptadas se você estiver enviando dados em texto puro, sem criptografia.
Da forma como o projeto foi implementado (somente para estudo e testes), deve apenas ser usado na sua rede local.