Você está na página 1de 9

UNIVERSIDADE MANDUME YA NDEMUFAYO

INSTITUTO SUPERIOR POLITÉCNICO DA HUÍLA

DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO E INFORMÁTICA

Projecto de Sistemas Distribuídos e Paralelos

Chat Multiusuários Com Socket Em Java

Huíla - Lubango

Junho, 2019
Departamento de Ciências da Computação e Informática

Instituto Superior Politécnico da Huíla

Universidade Mandume Ya Ndemufayo

Chat multiusuários com Socket

Em Java

Trabalho realizado para a disciplina de

Sistemas Distribuídos e Paralelos

No âmbito da

Licenciatura de Engenharia Informática

Elaborado por:

Acácio do Rosário Ndaamenwa Kaitungwa

Maria dos Anjos Filipe

Rubem Ronaldo Pessela

O DOCENTE

__________________________

Edson Livongue, MSC

Junho de 2019
Índice

Resumo ................................................................................................................................. 1
Introdução ........................................................................................................................... 2
Objectivos......................................................................................................................... 2
O que é Socket ................................................................................................................ 2
POO ................................................................................................................................... 2
Implementação ................................................................................................................... 3
Conclusão............................................................................................................................. 6
RESUMO
No presente projecto, será criado/demonstrado como criar um Chat com Java.
Para isso será necessário usar e aplicar conceitos de Socket e Thread, além da
programação Orientado a Objetos.

No mesmo projecto, será demonstrado uma forma de construir um chat


multiusuários com socket e com interface Swing que torna possível que o cliente
envie uma mensagem para todos os demais clientes conectados ao servidor ou
enviar a mensagem de forma reservada, ou seja, o cliente seleciona um usuário
e envia a mensagem apenas para este selecionado.

É de salientar que: Esta é uma implementação possível e não será certamente


a única ou mesmo a mais adequada.

O desenvolvimento da aplicação e da interface gráfica será/foi realizada na IDE


Netbeans na sua versão 8.2.

1
INTRODUÇÃO

Objectivos
Criar/Desenvolver um/uma chat/aplicação em JAVA com uso de Sockets em que
seja possível a troca de mensagens entre usuários.

O que é Socket

Socket é um meio de comunicação usado para viabilizar a conexão


cliente/servidor, onde um cliente informa o endereço de IP e a respectiva porta
do servidor. Se este aceitar a conexão, ele irá criar um meio de comunicação
com esse cliente. Logo, a combinação de Threads e Socket é perfeita para
implementação de um chat.

POO

Frente a quantidade de linguagens orientadas a objetos (OO) existentes, como


C#, C++, Java, entre outras, fica evidente que para dominá-las é necessário
entender bem os pilares OO, como Herança (por interface e por classe),
Encapsulamento, Polimorfismo e Abstração. Neste artigo nos depararemos com
Herança por interface e classe base, abstração e encapsulamento, mas não será
o foco do mesmo abordar seus conceitos.

2
IMPLEMENTAÇÃO

O presente projecto, será desenvolvido em duas aplicações, uma trabalhando


com servidor e outra como cliente(s), A seguir são descritas as
responsabilidades e comportamentos das aplicações (ChatCliente e
ChatServidor) usadas para a construção e a comunicação do Chat:

 Responsabilidade e comportamentos do ChatServidor: o servidor servirá


como unidade centralizadora de todas as conexões recebidas via socket
e terá como responsabilidade o envio de uma mensagem (recebida de
um cliente) para todos os demais conectados no servidor. Quando um
cliente se conecta a ele o mesmo cria uma Thread para aquele cliente, ou
seja, cada conexão terá sua respectiva Thread e o servidor fará a gestão
disso;

 Responsabilidade e comportamentos do ChatCliente: Cada usuário criará


uma instância do cliente e fará uma conexão com o servidor socket. O
cliente deverá informar o endereço do server socket e a respectiva porta,
por isso é necessário executar o ChatServidor antes.

Para o caso, escolhemos uma porta que não está sendo usada pelo firewall ou
que algum antivírus não esteja bloqueando para a execução do server socket. E
para tal, escolhemos a porta 5000 em nossa máquina local.

O mesmo chat pode ser usado de duas maneiras:

 A aplicação pode estar em mais de uma máquina, podendo as mesmas


conversarem se os computadores envolvidos estiverem conectados na
mesma rede, rede esta do tipo ponto a ponto), para tal deverão usar um
número de IP específico e informar a devida porta (5000). E é sempre o
ChatServidor que deve ser executado em primeiro lugar, e executar
quantas vezes a aplicação ChatCliente para atingir um número desejado
de utilizadores.

 A aplicação pode estar em apenas uma máquina, para o efeito deverá ser
informado o IP da máquina local (localhost) e a devida porta. E para a
mesma, também é o servidor que deve ser executado em primeiro lugar,
e executar quantas vezes a aplicação Cliente para atingir um número
desejado de utilizadores.

3
Após executar as aplicações será exibida a tela seguinte:

Figura 1 – Tela principal onde será informado o nome, IP e a porta que o Cliente que se conecta.

Tela essa onde será informado o nome do usuário que está a logar na aplicação
e em seguida terá acesso as demais funcionalidades da aplicação,
funcionalidades estas do tipo:

 Enviar mensagens e receber mensagens;


 Sair do Chat;
 Sair da aplicação;

Figura 2 – Informações disponíveis depois de informar o nome;

As mensagens trocadas são apresentadas na interface e armazenadas em um dado


banco de dados.

A seguir são mostradas as mensagens armazenadas. Tanto na aplicação e como no


banco de dados.

4
Figura 3 – Mensagens registrada na interface da aplicação durante uma conversa.

Nota: De salientar que a mesma aplicação conta com um banco de dados, ou


seja, as informações são salvas/registradas conforme mostra a figura 4..

Figura 4 – Mensagens registrada no banco de dados durante uma conversa.

5
CONCLUSÃO
Contudo, é de salientar que todos os objectivos previamente estabelecidos
foram alcançados, e foi possível fazer a devida demonstração de como funciona
realmente uma aplicação com Socket em Java em que é o servidor que se
mantém responsável em garantir a comunicação entre os usuários do Chat.