Skip to content

Entrega da Etapa 3: Sistema Completo

Latest

Choose a tag to compare

@marinaggc marinaggc released this 07 Oct 00:04

Este release corresponde à entrega final (Etapa 3) do projeto de Programação Concorrente. O sistema de chat multiusuário está completo, com todas as funcionalidades obrigatórias implementadas, juntamente com a documentação e análise crítica.

Funcionalidades Implementadas
Servidor TCP Concorrente: Aceita múltiplas conexões de clientes simultaneamente.pdf, source: 1443].

Threads Dedicadas: Cada cliente conectado é gerenciado por uma std::thread individual.pdf, source: 1444].

Broadcast: As mensagens são retransmitidas para todos os outros clientes conectados.pdf, source: 1444].

Cliente CLI: Cliente de linha de comando para conectar, enviar e receber mensagens de forma assíncrona.pdf, source: 1446].

Proteção de Dados: As estruturas compartilhadas (lista de clientes e histórico de mensagens) são protegidas contra condições de corrida usando std::mutex e std::lock_guard.pdf, source: 1448].

Controle de Conexões: Foi implementado um limite de 5 clientes simultâneos usando std::condition_variable para gerenciar o acesso.

Logger Thread-Safe: O sistema possui um logger concorrente customizado que utiliza std::mutex para garantir a escrita segura no arquivo de log.pdf, source: 1445; RELATORIO.md].

Observação: Foi implementado um logger customizado em vez de utilizar a biblioteca libtslog externa.

Relatório Final
O relatório completo, incluindo o mapeamento de requisitos, o diagrama de sequência e a análise crítica com IA, está disponível no arquivo RELATORIO.md.

Clique aqui para acessar o Relatório Final

Como Compilar e Executar
Compilar o projeto:

Bash

make all
Executar o servidor:

Bash

./bin/server.exe
Executar um ou mais clientes (em terminais separados):

Bash

./bin/client.exe