项目简介
本项目是一个基于C++和Protobuf的多线程数独求解服务器。该服务器采用多线程架构,包含一个accept线程、一个IO线程和多个计算线程,能高效处理客户端的连接与数独求解请求。服务器支持数独数据和echo消息这两种类型的消息,借助Protobuf完成序列化和反序列化。
项目的主要特性和功能
- 多线程架构:1个accept线程负责处理客户端连接;1个IO线程处理所有线程的数据接收;8个线程池内的计算线程处理数独求解任务。
- 高效的事件处理:运用epoll进行事件驱动,保障客户端连接和数据接收的高效处理;利用条件变量和互斥锁实现线程间的同步与通信。
- Protobuf消息格式:支持数独数据和echo消息两种Protobuf消息格式;通过消息派遣功能,依据不同消息类型调用相应处理函数。
- 数独求解算法:实现了高效的数独求解算法,可在20ms内完成求解;支持将求解结果打包并发送回客户端。
- 客户端测试程序:提供简单的客户端测试程序,用于发送数独数据和echo消息,并接收服务器响应。
安装使用步骤
假设用户已经下载了本项目的源码文件。
1. 复制项目:
bash
cd shudu
2. 编译项目:
bash
mkdir build
cd build
cmake ..
make
3. 运行服务器:
bash
./shudu_server
4. 运行客户端测试程序:
bash
./shudu_client
5. 测试服务器功能:
- 使用客户端测试程序发送数独数据和echo消息,观察服务器的响应。
- 检查服务器日志,确认数独求解和消息处理是否正常。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】