Skip to content

Entrega da Etapa 2: Protótipo CLI de Comunicação

Choose a tag to compare

@marinaggc marinaggc released this 03 Oct 20:33
· 1 commit to master since this release

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 libtslog da 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.

  1. Pré-requisitos:

    • Compilador C++ (G++)
    • Make
  2. Compilar o projeto:
    No terminal, na raiz do projeto, execute o comando para compilar ambos os programas:

    make

    Isso criará os arquivos server.exe e client.exe dentro da pasta bin/.

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

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