TalkShell

Aplicação de chat via terminal desenvolvida em Python para estudar sockets TCP, arquitetura cliente-servidor, comunicação em tempo real e múltiplos clientes com threads.

Principais pontos
  • Comunicação cliente-servidor via TCP
  • Sockets utilizando apenas recursos nativos do Python
  • Múltiplos clientes simultâneos
  • Broadcast de mensagens em tempo real
  • Processamento concorrente com threads
  • Interface totalmente baseada em terminal
  • Modo SEND e VIEW
Tecnologias utilizadas
TalkShell

Visão geral

O TalkShell é uma aplicação de chat executada inteiramente pelo terminal, criada para estudar os fundamentos de comunicação através de sockets.

O projeto implementa um servidor TCP capaz de receber múltiplos clientes e transmitir mensagens entre eles utilizando apenas módulos nativos do Python.

Como funciona

O servidor é iniciado em uma porta TCP e fica aguardando conexões.

Cada cliente estabelece uma conexão com o servidor e recebe um identificador de usuário.

Quando um cliente envia uma mensagem, o servidor realiza o broadcast para os clientes conectados.

O modo SEND permite enviar e receber mensagens, enquanto o modo VIEW funciona somente para leitura.

Arquitetura

A aplicação possui duas partes principais:

server.py → aceita conexões → gerencia clientes → recebe mensagens → realiza o broadcast

client.py → conecta ao servidor → envia mensagens → recebe mensagens → possui modos SEND e VIEW

Threads são utilizadas no servidor para lidar com múltiplos clientes simultaneamente.

Funcionalidades

  • Chat em tempo real via terminal
  • Múltiplos clientes
  • Identificação por usuário
  • Broadcast de mensagens
  • Modo SEND
  • Modo VIEW
  • Comandos básicos de desconexão
  • Comunicação TCP

Decisões técnicas

O projeto utiliza somente os módulos socket e threading do Python para manter o foco nos conceitos fundamentais de redes.

Não existe interface gráfica nem dependências externas. Toda a interação acontece através do terminal.

Aprendizados

O TalkShell foi criado especificamente para estudar sockets antes da implementação de comunicação em tempo real no DialoGO.

O projeto permitiu compreender a comunicação cliente-servidor, sockets TCP, threads, broadcast e a criação de um protocolo simples de comunicação.