Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

TelesNET

TelesNET

TelesNET é um projeto educacional de chat em tempo real desenvolvido em Python para estudar comunicação cliente-servidor usando sockets TCP.

O projeto permite iniciar um servidor local, conectar múltiplos clientes e trocar mensagens entre eles por broadcast.

Objetivo

O objetivo do projeto é praticar conceitos fundamentais de redes e backend, como:

  • redes;
  • arquitetura cliente-servidor;
  • sockets;
  • TCP/IP;
  • concorrência;
  • threads.

Funcionalidades

  • Servidor TCP usando IPv4.
  • Conexão de múltiplos clientes.
  • Envio e recebimento de mensagens.
  • Broadcast das mensagens para os outros clientes conectados.
  • Identificação simples dos usuários por nome.
  • Uso de threads para atender clientes simultaneamente.
  • Remoção de clientes desconectados.
  • Encerramento do cliente com o comando /sair.

Conceitos estudados

  • TCP;
  • IPv4;
  • sockets;
  • cliente-servidor;
  • bind;
  • listen;
  • accept;
  • connect;
  • sendall;
  • recv;
  • encode/decode UTF-8;
  • threading;
  • broadcast;
  • gerenciamento de conexões.

Arquitetura

Cliente A ───┐
             │
Cliente B ───┼──► Servidor TCP ───► Broadcast
             │
Cliente C ───┘

O servidor recebe as mensagens enviadas por cada cliente e repassa para os outros clientes conectados.

Tecnologias

  • Python
  • Socket
  • Threading
  • TCP/IP

Estrutura

TelesNET/
├── server.py
├── client.py
├── README.md
└── .gitignore

Como executar

Abra um terminal na pasta do projeto e inicie o servidor:

py server.py

Depois, abra outro terminal e inicie um cliente:

py client.py

Para testar múltiplos usuários, abra novos terminais e execute novamente:

py client.py

Ao conectar, cada cliente informa seu nome. Para sair do chat, digite:

/sair

Aprendizados

Este projeto ajudou a colocar em prática conceitos de redes que normalmente ficam abstratos durante o estudo.

O fluxo principal praticado foi:

cliente → socket → TCP → servidor → broadcast → clientes

Possíveis evoluções

As ideias abaixo são possíveis evoluções futuras, não funcionalidades atuais do projeto:

  • interface gráfica;
  • mensagens privadas;
  • salas;
  • histórico;
  • autenticação;
  • criptografia;
  • envio de arquivos.

About

Chat TCP cliente-servidor desenvolvido em Python para estudo de sockets, threading e comunicação em rede.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages