# 一个基于C++11简单易用的轻量级网络编程框架
[![Build Status](https://travis-ci.org/xiongziliang/ZLToolKit.svg?branch=master)](https://travis-ci.org/xiongziliang/ZLToolKit)
## 项目特点
- 基于C++11开发,避免使用裸指针,代码稳定可靠;同时跨平台移植简单方便,代码清晰简洁。
- 使用epoll+线程池+异步网络IO模式开发,并发性能优越。
- 代码经过大量的稳定性、性能测试,可满足商用服务器项目。
- 支持linux、macos、ios、android、windows平台
- 了解更多:[ZLMediaKit](https://github.com/xia-chu/ZLMediaKit)
## 特性
- 网络库
- tcp/udp客户端,接口简单易用并且是线程安全的,用户不必关心具体的socket api操作。
- tcp服务器,使用非常简单,只要实现具体的tcp会话(TcpSession类)逻辑,使用模板的方式可以快速的构建高性能的服务器。
- 对套接字多种操作的封装。
- 线程库
- 使用线程实现的简单易用的定时器。
- 信号量。
- 线程组。
- 简单易用的线程池,可以异步或同步执行任务,支持functional 和 lambad表达式。
- 工具库
- 文件操作。
- std::cout风格的日志库,支持颜色高亮、代码定位、异步打印。
- INI配置文件的读写。
- 监听者模式的消息广播器。
- 基于智能指针的循环池,不需要显式手动释放。
- 环形缓冲,支持主动读取和读取事件两种模式。
- mysql链接池,使用占位符(?)方式生成sql语句,支持同步异步操作。
- 简单易用的ssl加解密黑盒,支持多线程。
- 其他一些有用的工具。
- 命令行解析工具,可以很便捷的实现可配置应用程序
## 编译(Linux)
- 我的编译环境
- Ubuntu16.04 64 bit + gcc5.4(最低gcc4.7)
- cmake 3.5.1
- 编译
```
cd ZLToolKit
./build_for_linux.sh
```
## 编译(macOS)
- 我的编译环境
- macOS Sierra(10.12.1) + xcode8.3.1
- Homebrew 1.1.3
- cmake 3.8.0
- 编译
```
cd ZLToolKit
./build_for_mac.sh
```
## 编译(iOS)
- 编译环境:`请参考macOS的编译指导。`
- 编译
```
cd ZLToolKit
./build_for_ios.sh
```
- 你也可以生成Xcode工程再编译:
```
cd ZLToolKit
mkdir -p build
cd build
# 生成Xcode工程,工程文件在build目录下
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/iOS.cmake -DIOS_PLATFORM=SIMULATOR64 -G "Xcode"
```
## 编译(Android)
- 我的编译环境
- macOS Sierra(10.12.1) + xcode8.3.1
- Homebrew 1.1.3
- cmake 3.8.0
- [android-ndk-r14b](https://dl.google.com/android/repository/android-ndk-r14b-darwin-x86_64.zip)
- 编译
```
cd ZLToolKit
export ANDROID_NDK_ROOT=/path/to/ndk
./build_for_android.sh
```
## 编译(Windows)
- 我的编译环境
- windows 10
- visual studio 2017
- [openssl](http://slproweb.com/download/Win32OpenSSL-1_1_0f.exe)
- [mysqlclient](https://dev.mysql.com/downloads/file/?id=472430)
- [cmake-gui](https://cmake.org/files/v3.10/cmake-3.10.0-rc1-win32-x86.msi)
- 编译
```
1 使用cmake-gui打开工程并生成vs工程文件.
2 找到工程文件(ZLToolKit.sln),双击用vs2017打开.
3 选择编译Release 版本.
4 依次编译 ZLToolKit_static、ZLToolKit_shared、ALL_BUILD、INSTALL.
5 找到目标文件并运行测试用例.
6 找到安装的头文件及库文件(在源码所在分区根目录).
```
## 授权协议
本项目自有代码使用宽松的MIT协议,在保留版权信息的情况下可以自由应用于各自商用、非商业的项目。
但是本项目也零碎的使用了一些其他的开源代码,在商用的情况下请自行替代或剔除;
由于使用本项目而产生的商业纠纷或侵权行为一概与本项项目及开发者无关,请自行承担法律风险。
## QA
- 该库性能怎么样?
基于ZLToolKit,我实现了一个流媒体服务器[ZLMediaKit](https://github.com/xia-chu/ZLMediaKit);作者已经对其进行了性能测试,可以查看[benchmark.md](https://github.com/xia-chu/ZLMediaKit/blob/master/benchmark.md)了解详情。
- 该库稳定性怎么样?
该库经过作者严格的valgrind测试,长时间大负荷的测试;作者也使用该库进行了多个线上项目的开发。实践证明该库稳定性很好;可以无看门狗脚本的方式连续运行几个月。
- 在windows下编译很多错误?
由于本项目主体代码在macOS/linux下开发,部分源码采用的是无bom头的UTF-8编码;由于windows对于utf-8支持不甚友好,所以如果发现编译错误请先尝试添加bom头再编译。
## 联系方式
- 邮箱:<1213642868@qq.com>(本项目相关或网络编程相关问题请走issue流程,否则恕不邮件答复)
- QQ群:542509000
没有合适的资源?快使用搜索试试~ 我知道了~
基于C++11线程池技术简单易用的轻量级网络编程框架源码.zip
共115个文件
cpp:48个
h:44个
cmake:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
4星 · 超过85%的资源 4 下载量 51 浏览量
2022-05-31
08:31:20
上传
评论
收藏 231KB ZIP 举报
温馨提示
基于C++11简单易用的轻量级网络编程框架源码。一个基于C++11的轻量级网络框架,基于线程池技术可以实现大并发网络IO 特点: 基于C++11开发,避免使用裸指针,代码稳定可靠;同时跨平台移植简单方便,代码清晰简洁。 使用epoll+线程池+异步网络IO模式开发,并发性能优越。 代码经过大量的稳定性、性能测试,可满足商用服务器项目。 支持linux、macos、ios、android、windows平台 特性: 网络库 tcp/udp客户端,接口简单易用并且是线程安全的,用户不必关心具体的socket api操作。 tcp服务器,使用非常简单,只要实现具体的tcp会话(TcpSession类)逻辑,使用模板的方式可以快速的构建高性能的服务器。 对套接字多种操作的封装。 线程库 使用线程实现的简单易用的定时器。 信号量。 线程组。 简单易用的线程池,可以异步或同步执行任务,支持functional 和 lambad表达式。 工具库 文件操作。 std::cout风格的日志库,支持颜色高亮、代码定位、异步打印。 INI配置文件的读写。 监听者模式的消息广播器。
资源推荐
资源详情
资源评论
收起资源包目录
基于C++11线程池技术简单易用的轻量级网络编程框架源码.zip (115个子文件)
AUTHORS 233B
getopt.c 22KB
android.toolchain.cmake 80KB
iOS.cmake 9KB
FindMYSQL.cmake 4KB
AndroidNdkGdb.cmake 4KB
AndroidNdkModules.cmake 3KB
sockutil.cpp 32KB
Socket.cpp 28KB
logger.cpp 18KB
util.cpp 16KB
SSLBox.cpp 14KB
EventPoller.cpp 14KB
UdpServer.cpp 13KB
BufferSock.cpp 11KB
MD5.cpp 11KB
SSLUtil.cpp 10KB
strptime_win.cpp 10KB
File.cpp 9KB
uv_errno.cpp 9KB
SHA1.cpp 9KB
TcpServer.cpp 8KB
test_shell.cpp 7KB
TaskExecutor.cpp 6KB
base64.cpp 6KB
test_pingpong.cpp 5KB
test_resourcePool.cpp 4KB
test_sql.cpp 4KB
TcpClient.cpp 4KB
CMD.cpp 4KB
test_logger.cpp 3KB
test_noticeCenter.cpp 3KB
test_delayTask.cpp 2KB
Server.cpp 2KB
PipeWrap.cpp 2KB
test_tcpClient.cpp 2KB
test_ssl.cpp 2KB
test_ringBuffer.cpp 2KB
test_semaphore.cpp 2KB
test_tcpEchoServer.cpp 2KB
test_udpSock.cpp 2KB
test_pipe.cpp 2KB
test_threadPool.cpp 2KB
test_eventPoller.cpp 2KB
Pipe.cpp 2KB
test_threadPoolBenchmark.cpp 2KB
test_timer.cpp 1KB
mini.cpp 1KB
Timer.cpp 1KB
Session.cpp 1KB
SelectWrap.cpp 1KB
WorkThreadPool.cpp 988B
Buffer.cpp 872B
SqlPool.cpp 628B
NoticeCenter.cpp 516B
.gitignore 291B
Socket.h 18KB
uv_errno.h 16KB
CMD.h 12KB
logger.h 12KB
Buffer.h 11KB
RingBuffer.h 11KB
sockutil.h 9KB
EventPoller.h 8KB
SqlConnection.h 8KB
SqlPool.h 7KB
tailor.h 7KB
util.h 7KB
TaskExecutor.h 6KB
SSLBox.h 6KB
ResourcePool.h 6KB
TcpClient.h 5KB
NoticeCenter.h 5KB
mini.h 5KB
SSLUtil.h 4KB
getopt.h 4KB
List.h 4KB
File.h 4KB
ThreadPool.h 4KB
TimeTicker.h 4KB
UdpServer.h 4KB
TcpServer.h 3KB
MD5.h 3KB
Session.h 3KB
base64.h 2KB
threadgroup.h 2KB
Server.h 2KB
TaskQueue.h 2KB
BufferSock.h 2KB
TcpSession.h 2KB
semaphore.h 2KB
WorkThreadPool.h 2KB
function_traits.h 1KB
onceToken.h 1KB
Timer.h 1KB
SHA1.h 983B
Pipe.h 871B
PipeWrap.h 828B
SelectWrap.h 815B
strptime_win.h 316B
共 115 条
- 1
- 2
资源评论
- m晴朗2022-08-13从github上盗的也那来这里卖,无语
- u0109053592023-12-16资源很赞,希望多一些这类资源。
- DIKEXI2022-08-18资源质量不错,和资源描述一致,内容详细,对我很有用。
- zyl-20192022-06-12用户下载后在一定时间内未进行评价,系统默认好评。
程序员张小妍
- 粉丝: 1w+
- 资源: 2599
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言基础-C语言编程基础之Leetcode编程题解之第30题串联所有单词的子串.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第29题两数相除.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第28题找出字符串中第一个匹配项的下标.zip
- 实验报告模板(1).docx
- C语言基础-C语言编程基础之Leetcode编程题解之第26题删除有序数组中的重复项.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第25题K个一组翻转链表.zip
- hnu计算机系统作业-计算机系统基础课程大作业.zip
- 树莓派app.apk
- C++的基于同态加密技术的匿名电子投票系统源码.zip
- SW建模格式图.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功