Chat em Grupo
Esse documento é um relatório do Primeiro Projeto de Aplicação da Disciplina de Redes da Universidade de Brasília. Com o objetivo de colocar em pratica o conhecimento teórico a respeito de Programação com Sockets, Paradigma de Cliente e Servidor e Sistemas de Redes, o grupo desenvolveu uma Aplicação de Chat em grupo utilizando esses conceitos e desenvolvendo uma interface simples para demonstrar as funcionalidades.
A aplicação foi desenvolvida utilizando a linguagem de programação Python e alguns pacotes desenvolvidos com a mesma linguagem. Para a comunicação entre clientes e o servidor, utilizamos sockets fornecidos pela biblioteca socket e configurados com especificações para seguir o protocolo TCP de transporte. Devido à necessidade de alguns processos da aplicação funcionarem simultaneamente a outros, precisávamos utilizar threads por meio da biblioteca “threading”. Na parte do cliente, utilizamos também o Tkinter para criar a interface principal, além do auxílio do “Pillow” para a renderização das imagens em um chat, do “PyGame” para tocar áudios e da biblioteca “re” para algumas validações por meio de expressões regulares (como a de e-mail). Além disso, optamos por utilizar a programação orientada a objetos tanto no cliente quanto no servidor para encapsular melhor as funcionalidades comuns a um usuário, um grupo, etc.
Pacotes necessários:
pip install Pillow
pip install pygame
Iniciar o servidor
cd server
py main.py
Iniciar o cliente
cd client
py main.py
O usuário pode trocar mensagens diretamente com outro usuário ou em um grupo. Para participar de um grupo, o usuário deve pedir para entrar, ser convidado ou criar seu próprio grupo. Ao criar um grupo, o usuário poderá receber notificações de pedidos para entrar em seu grupo, além das notificações de convite para grupos que qualquer usuário pode receber. Na troca de mensagens, os usuários poderão enviar imagens e áudios. As telas desenvolvidas para o projeto estão disponíveis abaixo.
Isa Sousa |
Lucas Lima |
Emerson Junior |