Este projeto implementa um aplicativo de conversas instantâneas utilizando sockets em Java. A aplicação permite que múltiplos clientes se conectem a um servidor central para trocar mensagens de texto e arquivos de forma eficiente e segura.
- Comunicação Cliente-Servidor: Todos os clientes se comunicam através do servidor, que atua como intermediário para rotear mensagens e arquivos.
- Mensagens Direcionadas: Envie mensagens de texto diretamente para um destinatário específico.
- Envio de Arquivos: Transfira arquivos para outros clientes conectados.
- Listar Usuários Conectados: Utilize o comando
/users
para ver todos os usuários atualmente conectados. - Finalizar Comunicação: Encerre a sessão a qualquer momento com o comando
/sair
. - Logs de Conexão: O servidor mantém um log detalhado das conexões, incluindo endereço IP e data/hora.
git clone https://github.com/equadras/ChatApp.git
cd ChatApp
Navegue até o diretório onde os arquivos .java estão localizados e compile-os:
javac Server.java
javac Client.java
Execute o servidor antes de iniciar os clientes:
java Server
O servidor estará rodando na porta 12345.
Em terminais separados, execute o cliente:
java Client
- Ao iniciar, o cliente solicitará que você insira um nome de usuário.
- É possível iniciar várias instâncias de clientes com nomes de usuários diferentes para testar em apenas uma máquina.
- Se os clientes estiverem em computadores diferentes, o endereço IP está definido como localhost e deve ser substituído pelo IP da máquina que está executando o servidor.
/send message <destinatario> <mensagem>
/send file <destinatario> <caminho do arquivo>
/users
/sair
O servidor mantém um arquivo de log chamado server_log que registra:
- Nome do cliente
- Endereço IP
- Data e hora da conexão
- Mensagens enviadas entre os clientes
- Este arquivo é atualizado automaticamente conforme os clientes se conectam e interagem