Sala de bate-papo HLW - uma ferramenta de bate-papo multipessoa desenvolvida usando tecnologia de programação de rede Linux C
Instalação e implantação
git clone https://github.com/fujie-xiyou/chat_room.git
Em seguida, importe chat_room.sql
para seu banco de dados e modifique as informações do banco de dados em config.json
Finalmente, se nenhum erro for relatado em ./chat_room_srv
, o servidor será iniciado com sucesso.
Em seguida, modifique o endereço do servidor em config.json e finalmente ./chat_room_cli
Por favor, registre uma conta primeiro
Vídeo de demonstração
Demonstração em vídeo da sala de bate-papo
Visão geral do projeto
- Este projeto é uma sala de bate-papo com interface de personagem desenvolvida usando a tecnologia de programação de rede Linux C. As funções básicas incluem registro e login de usuário, adição de amigos, bate-papo privado, criação de bate-papo em grupo, convite de amigos para participar de bate-papo em grupo, bate-papo em grupo, visualização de registro de bate-papo e. transferência de arquivo.
Desenho do projeto
- Este projeto é desenhado com base no modelo C/S e está dividido em duas partes: cliente e servidor. O cliente está conectado diretamente ao servidor e troca dados com o servidor em ambas as direções. e encaminhá-los para o usuário de destino, todo o trabalho de persistência de dados também será concluído no lado do servidor.
- O código do projeto é projetado usando uma ideia em camadas. O cliente é composto pela camada de interface e pela camada de lógica de negócios (camada de solicitação), e o servidor é composto pela camada de lógica de negócios e pela camada de persistência.
- Projeto de banco de dados
- Quando este projeto foi desenvolvido, eu não havia estudado sistematicamente cursos relacionados a bancos de dados, mas mais tarde, quando revisei o design do banco de dados deste projeto, descobri que ele estava alinhado com o paradigma BC.
- Alguns exemplos do banco de dados do projeto são mostrados na figura
- Design da função de transferência de arquivos Como o cliente e o servidor deste projeto usam JSON para interação de dados, é necessário processamento especial para transferência de arquivos. Portanto, aqui está uma breve introdução ao método de processamento de transferência de arquivos.
- Conforme mostrado na figura, depois que o usuário insere o nome do arquivo a ser enviado, o sistema usa a chamada de sistema open() para abrir o arquivo e, em seguida, usa a chamada de sistema read() para ler o conteúdo do arquivo dos bytes especificados e registra o valor de retorno de leitura no tamanho do campo do pacote de dados e, em seguida, usa base6 para ler o conteúdo do arquivo. 4. Transcodifique, registre o resultado no campo de dados do pacote de dados e, em seguida, envie o pacote de dados ao receptor e, em seguida, julgue se todos os arquivos foram enviados com base no tamanho do valor de retorno de leitura. o valor for menor que o parâmetro de tamanho de leitura. Em seguida, feche o arquivo, caso contrário, continue lendo, transcodificando e enviando.
- Depois de receber o pacote de arquivos, o receptor decodifica os dados em dados em binário e, em seguida, anexa os dados no buff que armazena o resultado da transcodificação dos dados no arquivo de acordo com o valor do tamanho.