Esta aplicação implementa uma comunicação servidor e cliente utilizando Sockets em Java com GUI. Por meio do protocolo TCP o cliente se conecta ao servidor e consegue entrar e sair dos grupos, já por meio do Protocolo UDP os clientes conectados que estejam no mesmo grupo conseguem trocar mensagem via chat uns com os outros dentro desse grupo.
-
Servidor:
- Gerencia a criação e remoção de grupos.
- Gerencia a entrada e saída de clientes dos grupos.
- Recebe mensagens de clientes e as retransmite para todos os membros do grupo (exceto quem enviou).
-
Cliente:
- Conecta-se ao servidor utilizando o endereço IP do servidor.
- Entra e sai de grupos através de TCP.
- Envia e recebe mensagens de outros clientes do mesmo grupo via UDP.
Para rodar esse projeto o ideal é que se utilize outras máquina (pode ser máquina virtual) para rodar tanto o servidor quanto o cliente máquinaas diferente, quanto diferentes clientes. Além disso, é preciso executar primeiro o servidor.
Como Executar o Servidor
-
Entre na pasta Servidor
-
Compile o projeto:
javac Principal.java
-
Execute o projeto:
java Principal
-
Será mostrado no Console as portas TCP e UDP que está rodando e o Ip que esse servidor ta rodando.
Como executar o Cliente
-
Entre na pasta Cliente
-
Compile o projeto:
javac Principal.java
-
Execute o projeto:
java Principal
-
A primeira tela vai pedir o Ip do servidor com o qual ele vai se conectar, logo insira Ip que foi mostrado quando executou o servidor
-
Repita os passos anteriores para criar outros clientes.
Pronto, agora a aplicação estará rodando e poderá fazer o uso dela. Mas perceba que com apenas um cliente e um servidor é possível testar o TCP por completo porém acaba não sendo possível testar a troca de mensagens, para isso precisa de no mínimo 2 clientes. Caso queira executar no VSCode, ao invés do 2° e 3° passo apenas ir na classe Principal e executar.
obs: É possível testar com uma máquina só rodando duas instâncias e usando Ip de Loopback (127.0.0.1), mas pode resultar em alguns problemas e em limitações, além de que não é possível testar completo (já que pra testar o UDP é preciso no mínimo dois clientes executando e um servidor)