# cpp-tbox-tutorials **Repository Path**: cpp-master/cpp-tbox-tutorials ## Basic Information - **Project Name**: cpp-tbox-tutorials - **Description**: CppTbox 的入门教程 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 26 - **Forks**: 14 - **Created**: 2023-05-13 - **Last Updated**: 2025-10-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: 网络编程, Linux ## README ![cpp-tbox-logo](images/logo-with-slogan.png) # CppTbox 的入门教程 本项目为 [cpp-tbox](https://github.com/cpp-main/cpp-tbox) 的入门教程。 您可以通过下面一个个的教程逐步掌握 cpp-tbox 的使用。 ## 准备工作 在开始学习之后,我们需要安装必要的工具,并将cpp-tbox构建并安装好。 [[点击前往]](00-prepare.md) ## 第一个程序 与学习一门新的编程语言类似,我们来尝试创建一个什么功能都没有的空程序,看看工具与环境是否已安装好。 [[点击前往]](00-first-demo.md) ## 写一个自己的 Module 往空程序里加一点自己的功能。 [[点击前往]](01-first-module.md) ## 日志的打印 打印日志是开发中必须要会的技能。接下来,我们学习如何打印日志。 [[点击前往]](02-add-log-tag.md) ## 事件驱动模式的编程 在使用cpp-tbox进行开发之前,必须得理解什么是基于事件驱动的编程,以及什么是Reactor模型。 [[点击前往]](03-event-drive.md) ## 定时器事件 实现一个定时打印日志的功能,掌握定时器的使用。 [[点击前往]](04-timer-event.md) ## IO事件 掌握对文件描述符的读写事件监听技能。 [[点击前往]](05-fd-event.md) ## Signal事件 掌握捕获信号的技能。 [[点击前往]](11-signal-event.md) ## HTTP服务 使用cpp-tbox中自带的http模块实现一个简单的http服务。 [[点击前往]](06-http-server.md) ## 配置系统 掌握如何使用参数,将外部的配置数据传递到程序中。 [[点击前往]](07-parameters.md) ## 命令终端 掌握如何使用终端进行调试。 [[点击前往]](08-terminal.md) ## 日志输出 ## 线程池与工作线程的使用 由于cpp-tbox是基于事件驱动的编程模型,对于事件的处理要求不能阻塞。然而实际的工作中,多多少少会遇到一些需要阻塞的事务。比如说:大运算、调用第三方库的阻塞性接口等。 这时,就得需要借助`ThreadPool`与`WorkThread`来解决问题。 [[点击前往]](14-thread-pool-and-work-thread.md) ## 子线程向主线程委派任务 上面学会了Loop线程往线程池与工作线程单向委派任务。反过来,子线程也可以向Loop线程委派任务。 [[点击前往]](15-run-in-loop.md) ## 定时器池的使用 前面了解了定时器的使用,这里来了解一种创建定时器更方便的方式。 [[点击前往]](12-timer-pool.md) ## TimerFd的使用 学习另一种定时更精准的定时器。 [[点击前往]](13-timer-fd.md) ## 运行时异常捕获功能 ## 多层级Module ## 使用TcpServer模块写一个echo服务 ## 使用TcpClient模块写一个客户端 ## 使用TcpAcceptor + TcpConnection 实现echo服务 ## 使用TcpConnector + TcpConnection 实现客户端 ## 串口使用 ### 写一个串口与终端的连接服务 ### 写一个两个串口的连接服务 ### 写一个串口转TCP的服务 ## 完善应用信息 [[点击前往]](09-add-app-info.md) ## 多个Module的工程结构 [[点击前往]](10-multi-modules.md) ## 模块插件化 ## 状态机的使用 通过交通信号灯的示例,带你掌握状态机的使用。 [[点击前往]](16-state-machine.md) ## 动作树的使用 [[点击前往]](17-action-tree.md) ## 实战 ### 打造一个咖啡机 学习状态机、行为树的使用 [[点击前往]](50-coffee-machine.md)