littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于C++的多进程高并发TCP服务器与客户端

项目简介

本项目是基于C++实现的多进程高并发TCP服务器与客户端。服务器端运用多线程和epoll机制达成高效的IO多路复用,可处理大量并发连接;客户端借助多线程模拟并发连接,用于对服务器进行压力测试并评估其性能。

项目的主要特性和功能

服务器端

  1. 多线程池:主线程创建线程池,处理客户端请求与日志写入操作。
  2. epoll IO多路复用:利用epoll监听文件描述符的读写事件,实现高效并发处理。
  3. 异步日志:通过独立子线程实现日志高效写入,避免阻塞主线程。
  4. 线程同步:封装互斥锁、条件变量和信号量,保证多线程环境下数据同步。

客户端

  1. 压力测试:多线程模拟并发连接,发送大量请求以评估服务器性能。
  2. 响应时间记录:记录每条消息响应时间,计算QPS和响应时间百分位数。
  3. 管理者线程:记录测试开始和结束时间,计算并输出测试结果。

安装使用步骤

1. 编译代码

```shell make server

make client ```

2. 运行服务器

```shell sh ./server.sh

./server $Port $ThreadNum ```

3. 运行客户端

```shell sh ./client.sh

./client $clients $nsum $message $IP $Port ```

4. 查看测试结果

客户端运行后会输出测试结果,包含测试开始和结束时间、QPS以及响应时间的百分位数。示例如下: test start time:11:56:38.116 test end time:11:56:54.512 qps:7049.99/sec Percentage of the requests served within a certain time(ms) P50:0.0140ms P60:0.0150ms P70:0.0170ms P80:0.0200ms P90:0.0260ms P100:3043.9840ms 通过上述步骤,可快速部署和测试本项目的高并发TCP服务器与客户端。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】