/real-time-udp-chat

Servidor UDT de chat de sala única em tempo real, com protocolo de transferência confiável, utilizando UDP e o método RDT 3.0.

Primary LanguagePythonMIT LicenseMIT

Chat de sala única com UDP e RDT3.0

Servidor de chat de sala única, onde os clientes se conectam à sala, recebendo e enviando mensagens para outros usuários.

🎥 Vídeo explicativo:

Acesse o vídeo explicativo Através do link: (https://youtu.be/yAcvJgEOcXg)

Tela de Início

Projeto composto por duas etapas:
1. Desenvolvimento de uma ferramenta de troca de arquivos .txt e reverberação disso em um chat de mensagens, utilizando comunicação com UDP;
2. Implementação de um protocolo de transferência confiável ao chat básico de troca de mensagens já feito, utilizando UDP e o método RDT 3.0 apresentado em sala de aula.
Tabela de Conteúdos
  1. Requisitos preliminares
  2. Implementação
  3. Imagens
  4. Colaboradores
  5. Contatos

Requisitos preliminares

Antes de começar, verifique se você atendeu aos seguintes requisitos:

  • Clone o projeto e abra em seu editor de código favorito;
  • Certifique que você está com o python 3.10+ instalado;
  • Certifique que você está com todos os plugins, nescessários para rodar um projeto python, instalados em seu editor de código;
  • Inicialmente, você deve abrir seu terminal na pasta real-time-udp-chat;
  • Em seguida, você deve executar o arquivo server.py nesse terminal.
  • Para conectar um usuário ao chat, execute o arquivo client.py em um teminal separado (esse terminal também deve ser aberto na pasta real-time-upd-chat)

OBS: Você pode adicionar outros clientes duplicando o arquivo client.py e executando cada cliente em um terminal separado.

Como Executar o Projeto

  1. Primeiro, o usuário deve rodar simultaneamente os dois principais arquivos (nesta ordem) em terminais diferentes:

    • Rodar o arquivo server.py
    • Rodar o arquivo client.py
  2. A partir disso, o primeiro usuário poderá usar o chat.

  3. Caso outro usuário deseje usar o chat, é preciso rodar o client.py novamente em outro terminal, de modo que haverá um terminal com client.py para cada pessoa que estiver utilizando o chat.

Implementação

Linguagem Utilizada

Linguagem de programação Python

Funcionalidades

  1. Chat UDP de sala única para múltiplos usuários com transferência confiável RDT 3.0;
  2. Cliente e Servidor;
  3. Troca de arquivos em formato de texto (.txt);
  4. Conectar, sair e enviar mensagens na sala;
  5. Implementação RDT 3.0: 3 Way Handshake (SYN-ACK), processo de finalização (FYN-ACK), checksum, timeout e tratamento de perda ou corrupção de pacotes de dados e de reconhecimento.

Bibliotecas utilizadas

  • Datetime: Manipula datas e horas.

  • Math: Fornece funções matemáticas avançadas.

  • Queue: Aplicamos a biblioteca tkinter para criar interfaces gráficas de usuário (GUI).

  • Random: Utilizado para gerar números de porta aleatórios.

  • Socket: Cria sockets para comunicação em uma rede.

  • Struct: Bilioteca que interpreta bytes como dados binários compactados.

  • Threading: Cria threads, que são úteis para executar operações simultâneas.

  • Time: Utilizado para aplicar timeout.

GitHub

Link para o repositório: https://github.com/Dev-JoseRonaldo/real-time-udp-chat.git

(voltar ao topo)

Imagens

Figura 0

Tela de Início

(voltar ao topo)

Colaboradores

Foto do Colaborador
Dayane Lima
Foto do Colaborador
José Ronaldo
Foto do Colaborador
Luiz Henrique
Foto do Colaborador
Mariana Marinho

Contatos

Dayane Lima

José Ronaldo

Luiz Henrique

Mariana Marinho

(voltar ao topo)