- Notifications
You must be signed in to change notification settings - Fork0
Ninokz/NBlib
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
🐂🍺NBlib: 基于Boost.Asio 的 C++ 网络库。该库提供了基础的服务器和客户端实现,支持多线程任务调度与管理,学习使用;
- 多线程支持:包括简单线程池和任务窃取线程池等(
SimpleThreadPool
和StealThreadPool
),用于高效的任务调度和并行处理。 - 网络通信:基于
Boost.Asio
的服务器和客户端实现 (BaseServer
和BaseClient
),支持异步 I/O 和高并发连接处理。 - 线程管理:线程池管理(如
ioservicepool.h
、simplelenThreadPool.h
等),支持多线程环境下的资源管理和调度。 - 日志系统:提供基础的异步日志记录工具 (
log.h
)。 - 配置管理:支持配置文件的加载和解析 (
config.h
)工具,方便管理应用的配置选项。 - 单例模式:提供单例模式模板 (
singleton.h
),用于全局对象的管理。
- Boost 1.85.0
- C++11
该项目包含NBlib.vcxproj
文件,可以通过 Visual Studio 直接打开并构建:
- 打开 Visual Studio。
- 选择 "打开项目/解决方案"。
- 选择
NBlib.vcxproj
文件。 - 在项目属性中设置 Boost 库的路径。
- 生成解决方案即可。
你也可以通过创建一个适配的CMakeLists.txt
文件来编译此项目,确保包含 Boost 库:
创建
CMakeLists.txt
文件:cmake_minimum_required(VERSION 3.10)project(NBlib)set(CMAKE_CXX_STANDARD 11)find_package(Boost REQUIRED COMPONENTSsystem thread)include_directories(${Boost_INCLUDE_DIRS})file(GLOBSOURCES"*.cpp""*.h")add_executable(NBlib${SOURCES})target_link_libraries(NBlib${Boost_LIBRARIES})
在项目根目录执行以下命令:
mkdir buildcd buildcmake ..make
BaseClient.cpp
/BaseClient.h
:基于 Boost.Asio 的基础客户端实现,支持异步 I/O 操作。BaseServer.cpp
/BaseServer.h
:基于 Boost.Asio 的基础服务器实现,支持并发的客户端连接处理。concurrentqueue.h
:并发队列的实现,支持多线程环境下的高效数据交换。simplethreadpool.cpp
/simplethreadpool.h
:简单线程池实现,用于基本的任务并行处理。stealThreadPool.cpp
/stealThreadPool.h
:任务窃取线程池实现,支持负载均衡和多线程任务窃取。ioservicepool.cpp
/ioservicepool.h
:基于 Boost.Asio 的 IO 服务线程池,用于管理多个 I/O 操作。config.cpp
/config.h
:配置管理模块,支持从配置文件加载和解析应用的配置项。log.cpp
/log.h
:日志系统,提供简单的日志记录功能。packet.cpp
/packet.h
:网络数据包类session.cpp
/session.h
:会话管理类,用于管理与客户端的连接。singleton.h
:单例模式模板,用于全局对象的管理。test.h
:测试相关的头文件,可能包含一些测试用例或测试框架的设置。