Skip to content

UDP real-time single-room chat server with reliable transfer protocol, using UDP and RDT 3.0 method.

Notifications You must be signed in to change notification settings

bomday/chat-UDP-RDT3.0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

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.

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.

Baseado em um projeto da disciplina de Redes de Computadores do curso de Sistemas de Informação da UFPE.

Tabela de Conteúdos
  1. Requisitos preliminares
  2. Implementação
  3. 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 chat-udp-rdt3.0;
  • 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.

  • OS: Biblioteca para manipulação de arquivos e diretórios.

  • 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.

GitHub

Link para o repositório: https://github.com/bomday/chat-UDP-RDT3.0

(voltar ao topo)

Contatos

Dayane Lima

(voltar ao topo)

About

UDP real-time single-room chat server with reliable transfer protocol, using UDP and RDT 3.0 method.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages