项目简介
这是一个基于C语言的聊天室系统,涵盖客户端和服务器端的实现。服务器端运用epoll反应堆模型,可进行多客户端并发处理,同时采用MariaDB或MySQL数据库存储用户信息。客户端以非阻塞方式与服务器通信,实现了用户注册、登录、好友管理、群组管理、文件传输等功能。
项目的主要特性和功能
服务器端
- 采用epoll反应堆模型,支持多客户端并发处理。
- 运用LT(水平触发)模式。
- 借助MariaDB或MySQL数据库存储用户信息。
- 支持以守护进程模式运行。
- 通过json配置文件定义数据库配置、端口等参数。
- 实现事件处理包裹,包含epoll事件的回调处理。
客户端
- 使用zlog记录运行时状态,支持分日志级别。
- 屏蔽常见信号,用getopt处理启动参数。
- 利用readline实现命令行补全效果。
- 以非阻塞方式使用socketfd与服务器通信,支持失败重试和超时处理。
- 实现用户登录、好友管理、群组管理、文件传输等功能。
- 同一账号第二次登录时,第一次登录的用户会被挤下线。
- 实现屏幕光标的移动和清屏功能。
安装使用步骤
安装依赖库
安装cjson、readline、zlog和MariaDB或MySQL数据库。
编译项目
- 在项目根目录中创建
build
文件夹。 - 进入
build
文件夹,执行以下命令进行编译:sh cmake .. make
启动服务器
在build
文件夹中执行以下命令启动服务器:
sh
./server.out
启动客户端
在build
文件夹中执行以下命令启动客户端,并指定服务器地址和端口:
sh
./client.out 127.0.0.1 5000
注意:该项目仅在Linux环境下测试,可能不保证在其他平台上正常运行。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】