Repository navigation
Entrega da Etapa 2: Protótipo CLI de Comunicação
LPII - Trabalho Final: Programação Concorrente - Etapa 2
Esta entrega corresponde à Etapa 2: Protótipo CLI de Comunicação.
Funcionalidades Entregues na Etapa 2
-
Servidor Concorrente Funcional: Foi implementado o servidor TCP que aceita múltiplas conexões de clientes simultaneamente. Cada cliente é gerenciado em uma thread separada, permitindo que o servidor permaneça responsivo para novas conexões.
-
Cliente CLI: Foi desenvolvido um programa cliente de linha de comando (
client.exe) que permite ao usuário conectar-se ao servidor, enviar mensagens e receber respostas. O cliente também utiliza uma thread para receber mensagens de forma assíncrona, não bloqueando o usuário. -
Comunicação em Rede: O protótipo demonstra a comunicação básica em rede. O cliente envia mensagens de texto para o servidor, e o servidor confirma o recebimento.
-
Logging Integrado: A biblioteca
libtslogda Etapa 1 foi integrada ao servidor para registrar eventos importantes, como inicialização, conexões de novos clientes, mensagens recebidas e desconexões.
Como Compilar e Executar
Este projeto utiliza make para compilar os executáveis do servidor e do cliente.
-
Pré-requisitos:
- Compilador C++ (G++)
- Make
-
Compilar o projeto:
No terminal, na raiz do projeto, execute o comando para compilar ambos os programas:make
Isso criará os arquivos
server.exeeclient.exedentro da pastabin/. -
Executar o Servidor:
Abra um terminal e inicie o servidor com o seguinte comando:./bin/server.exe
O servidor ficará rodando, aguardando por conexões.
-
Executar o(s) Cliente(s):
Abra um novo terminal para cada cliente que desejar conectar. Execute o comando:./bin/client.exe
Você pode abrir vários terminais e rodar este comando em cada um para simular múltiplos clientes.