Disponibilização de código: Comunicador

Boa tarde.

Juntando um pouco de vontade de estudar e certa ociosidade, resolvi criar um comunicador (messenger) para trabalhar em rede, indiferente se é Lan ou Wan, funciona em qualquer lugar onde os ips se “enxergam”.

A base do projeto foi construida com informações daqui mesmo no guj, e nas apostilas de sockets da caelum, aprendi um pouco de sockets e fiz este projetinho básico.

Acho que seria interessante disponibilizar o projeto aqui, por que o código está bem legível e contem bons exemplos de sockets, thread e swing, além de uma logicazinha interessante apesar de simples.

Não é a sétima maravilha do mundo, afinal sou “JavaBoy” mas funciona muito bem, aqui na empresa em que trabalho estamos utilizando largamente para comunicação interna do setor.

Como funciona:
São dois jars, o cliente e o servidor.
Alguem inicia o servidor, só precisa que uma pessoa faça isso, quando o servidor é iniciado ele solicita uma porta qualquer (dentre as mais de 65.000 disponiveis no computador) e pronto, está funcionando.

Todo mundo que quiser se conectar inicia o jar cliente, clica em opções, conectar e informa primeiro o ip ou host do computador que está executando o servidor, depois informa a porta e o nick. Pronto está conectado.

Funcionalidades:
-Avisa quando alguem está digitando algo, bem no estilo do google talk (XXX está digitando algo…).
-Lista quem está conectado no servidor, e é possível enviar mensagens particulares (identificadas por um @ antes da mensagem).
-É possível trocar o título da janela, eu batizei a aplicação de jReMSN (Re de Reinaldo), porém basta clicar no botão “Alterar Titulo” para escolher um nome mais discreto.
-Exibe mensagens “XXX está conectado” e “XXX está desconectado”.

Não está 100% finalizado nem posso garantir o código é totalmente limpo, falta dar algumas “perfumadas” na aplicação, mas como disse acima, a lógica está interessante e facil de entender, além das nomenclaturas claras.

Enfim, os links para download estão abaixo, quem quiser usar/alterar/comentar/criticar, sinta-se em casa.
Se alguem fizer alguma alteração legal posta aqui também, por favor.

Download dos jars “executáveis” (somente classes):
Servidor
Cliente

Download dos projetos:
Servidor
Cliente

Nota: Para criar a interface gráfica usei o plugin jigloo para eclipse.

Parabéns pela iniciativa!!
:slight_smile: