Sala de chat HLW: una herramienta de chat para varias personas desarrollada con tecnología de programación de red Linux C
Instalación e implementación
git clone https://github.com/fujie-xiyou/chat_room.git
Luego importe chat_room.sql
a su base de datos y modifique la información de la base de datos en config.json
Finalmente, si no se informa ningún error en ./chat_room_srv
, el servidor se iniciará correctamente.
Luego modifique la dirección del servidor en config.json y finalmente ./chat_room_cli
Por favor registre una cuenta primero
Vídeo de demostración
Demostración en vídeo de la sala de chat
Resumen del proyecto
- Este proyecto es una sala de chat con interfaz de caracteres desarrollada utilizando la tecnología de programación de red Linux C. Las funciones básicas incluyen registro e inicio de sesión de usuario, agregar amigos, chat privado, crear chat grupal, invitar amigos a unirse al chat grupal, ver registros de chat y. transferencia de archivos.
diseño de proyecto
- Este proyecto está diseñado en base al modelo C/S y se divide en dos partes: cliente y servidor. El cliente está conectado directamente al servidor e intercambia datos con el servidor en ambas direcciones. y reenviarlos al usuario objetivo, todo el trabajo de persistencia de datos también se completa en el lado del servidor.
- El código del proyecto está diseñado utilizando una idea en capas. El cliente se compone de la capa de interfaz y la capa de lógica empresarial (capa de solicitud), y el servidor se compone de la capa de lógica empresarial y la capa de persistencia.
- Diseño de base de datos
- Cuando se desarrolló este proyecto, no había estudiado sistemáticamente cursos relacionados con bases de datos, pero más tarde, cuando revisé el diseño de la base de datos de este proyecto, descubrí que estaba en línea con el paradigma BC.
- Algunos ejemplos de la base de datos del proyecto se muestran en la figura.
- Diseño de la función de transferencia de archivos Dado que el cliente y el servidor de este proyecto utilizan JSON para la interacción de datos, se requiere un procesamiento especial para la transferencia de archivos. Por lo tanto, aquí hay una breve introducción al método de procesamiento de la transferencia de archivos.
- Como se muestra en la figura, después de que el usuario ingresa el nombre del archivo que se enviará, el sistema usa la llamada al sistema open() para abrir el archivo, luego usa la llamada al sistema read() para leer el contenido del archivo de los bytes especificados y registra el valor de retorno de lectura en el campo de tamaño del paquete de datos y luego usa base6 para leer el contenido del archivo. 4. Transcodifique, registre el resultado en el campo de datos del paquete de datos y luego envíe el paquete de datos al receptor, y luego juzgue si todos los archivos se han enviado en función del tamaño del valor de retorno de lectura. El valor es menor que el parámetro de tamaño de lectura. Luego cierre el archivo; de lo contrario, continúe leyendo, transcodificando y enviando.
- Después de recibir el paquete de archivos, el receptor decodifica los datos en datos en binario y luego agrega los datos en el buff que almacena el resultado de la transcodificación de los datos al archivo de acuerdo con el valor del tamaño.