×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
C++新经典:Linux C++通信架构实战

C++新经典:Linux C++通信架构实战

1星价 ¥59.4 (6.0折)
2星价¥59.4 定价¥99.0
暂无评论
图文详情
  • ISBN:9787302555292
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:408
  • 出版时间:2020-11-01
  • 条形码:9787302555292 ; 978-7-302-55529-2

本书特色

书中主题 商业项目的完整源码 从无到有,实现一个商业质量的多线程高并发服务器程序项目框架,只需要增加业务逻辑代码就可以利用本项目完成实际工作中诸多服务器项目的开发,如网络游戏服务器、交易服务器、通信服务器等。 商业项目的实现功能 ①按照包头+包体格式正确接收客户端发送的数据包, 完美解决数据粘包问题;②根据接收的数据包的不同来执行不同的业务处理逻辑;③把业务处理产生的结果数据包正确返回给客户端。 商业项目的开发技术 ①epoll高并发通信技术(水平触发模式LT);②通过线程池技术处理业务逻辑;③线程之间的同步技术包括互斥量与信号量;④连接池中连接的延迟回收技术,极大程度上消除诸多导致服务器程序工作不稳定的因素;⑤其他次要技术,包括信号的处理、配置文件的读取、日志的打印输出、调用fork创建子进程、创建守护进程等。 环境标准 VMware Workstation Pro:Ubuntu Linux、g++、Windows:Visual Studio 2019、Visual Studio Code VMware Workstation Pro:Ubuntu Linux、g++ Windows:Visual Studio 2019、Visual Studio Code 程序代码 全部实例源代码可以扫描右方二维码获取,配套开发工具及更多学习资源可以关注作者公众号“程序员速成”获取。

内容简介

这是一本Linux下C++通信架构实战书籍,针对于C/C++语言已经掌握的很熟并希望进一步深造以将来用C++在Linux下从事网络通信领域/网络服务器的开发和架构工作。包括如下内容:(1)项目本身是一个极完整的多线程高并发的服务器程序;(2)按照包头包体格式正确的接收客户端发送过来的数据包, 完美解决收包时的数据粘包问题;(3)根据收到的包的不同来执行不同的业务处理逻辑;(4)把业务处理产生的结果数据包正确返回给客户端。

目录

第1章课程介绍

1.1本书内容详细介绍

1.1.1内容总述

1.1.2为什么选择Linux操作系统平台

1.1.3讲解规划和学习建议

1.1.4书籍推荐和读书须知

1.2环境搭建详细介绍

1.2.1Windows下的Visual Studio 2019安装

1.2.2准备一个Word文档

1.2.3Windows下的虚拟机安装

1.2.4在虚拟机中安装Linux操作系统

1.2.5配置固定IP地址

1.2.6配置远程连接

1.2.7安装编译工具gcc、g++等

1.2.8共享一个操作目录

第2章进入Nginx之门

2.1Nginx简介、选择理由、安装和使用

2.1.1Nginx简介

2.1.2为什么选择Nginx

2.1.3安装Nginx,搭建Web服务器

2.1.4Nginx的启动和简单使用

2.2Nginx整体结构、进程模型

2.2.1Nginx的整体结构

2.2.2Nginx进程模型细说

第3章Nginx开发初步

3.1学习Nginx源码前的准备工作

3.1.1Nginx源码总述

3.1.2Nginx源码查看工具

3.1.3Nginx源码入口函数定位

3.1.4创建一个自己的Linux下的C语言程序

3.2Nginx源码学法,终端和进程的关系

3.2.1Nginx源码学习方法

3.2.2终端和进程的关系

3.3信号的概念、认识、处理动作

3.3.1信号的基本概念

3.3.2通过kill命令认识一些信号

3.3.3进程的状态

3.3.4常用信号列举

3.3.5信号处理的相关动作

3.4UNIX/Linux体系结构、信号编程初步

3.4.1UNIX/Linux操作系统体系结构

3.4.2signal函数范例

3.5信号编程进阶、sigprocmask范例

3.5.1信号集(信号屏蔽字)

3.5.2信号相关函数

3.5.3sigprocmask等信号函数范例演示

3.6fork函数详解、范例演示

3.6.1简单认识fork函数

3.6.2进一步认识fork函数

3.6.3完善fork代码

3.6.4一个和fork执行有关的逻辑判断

3.6.5fork失败的可能原因

3.7守护进程详解、范例演示

3.7.1普通进程运行观察

3.7.2守护进程基本概念

3.7.3守护进程编写规则

3.7.4守护进程不会收到的信号

3.7.5守护进程和后台进程的区别

第4章服务器程序框架初步

4.1服务器程序目录规划、makefile编写

4.1.1信号高级认识范例

4.1.2服务器架构初步

4.2读配置文件、查泄漏、设置标题实战

4.2.1基础设施之配置文件读取

4.2.2内存泄漏的检查工具

4.2.3设置进程名称(标题)

4.3日志打印实战,优化main函数调用顺序

4.3.1基础设施之日志打印实战代码一

4.3.2设置时区

4.3.3基础设施之日志打印实战代码二

4.3.4理顺main函数中代码执行顺序

4.4信号、子进程实战,文件I/O详谈

4.4.1信号功能实战

4.4.2Nginx中创建worker子进程

4.4.3日志输出重要信息讲解

4.4.4write函数思考

4.4.5掉电导致write写入的数据丢失破解法

4.4.6标准I/O库

4.5守护进程及信号处理实战

4.5.1守护进程功能的实现

4.5.2信号处理函数的进一步完善(避免僵尸子进程)

第5章网络通信实战

5.1C/S、TCP/IP妙趣横生、惟妙惟肖谈

5.1.1客户端与服务器端

5.1.2网络模型

5.1.3*简单的客户端和服务器程序实现代码

5.1.4TCP和UDP的区别

5.2TCP三次握手详析,telnet、Wireshark示范

5.2.1TCP连接的三次握手

5.2.2telnet工具使用介绍

5.2.3Wireshark监视数据包

5.2.4TCP断开的四次挥手

5.3TCP状态转换,TIME_WAIT详解,SO_REUSEADDR

5.3.1TCP状态转换

5.3.2TIME_WAIT状态

5.3.3SO_REUSEADDR选项

5.4listen队列剖析、阻塞与非阻塞、同步与异步

5.4.1listen队列剖析

5.4.2阻塞与非阻塞I/O

5.4.3异步与同步I/O

5.5监听端口实战、epoll介绍及原理详析

5.5.1监听端口

5.5.2epoll技术简介

5.5.3epoll原理与函数介绍

5.6通信代码精粹之epoll函数实战1

5.6.1提醒注意

5.6.2配置文件的修改

5.6.3epoll函数实战

5.7通信代码精粹之epoll函数实战2

5.7.1ngx_epoll_process_events函数调用位置

5.7.2ngx_epoll_process_events函数内容

5.7.3ngx_event_accept函数内容

5.7.4总结和测试

5.7.5事件驱动总结

5.7.6一道腾讯后台开发的面试题

5.8ET、LT深释,服务器设计、粘包解决

5.8.1ET、LT模式深入分析及测试

5.8.2本项目的服务器设计

5.9通信代码精粹之收包、解包实战

5.9.1收包分析及包头结构定义

5.9.2收包状态宏定义

5.9.3收包实战代码

5.9.4测试服务器收包避免推诿扯皮

第6章服务器业务逻辑处理框架

6.1业务逻辑之多线程、线程池实战

6.1.1学习方法

6.1.2多线程的提出

6.1.3线程池实战代码

6.1.4线程池的使用

6.2业务逻辑之打通业务处理脉搏实战

6.2.1线程池代码调整及补充说明

6.2.2线程池实现具体业务之准备代码

6.2.3threadRecvProcFunc成员函数讲解

6.2.4整体测试工作的开展

6.3预发包,多线程资源回收深度思考

6.3.1业务逻辑细节写法说明

6.3.2连接池中连接回收的深度思考

6.3.3程序(进程)退出时线程的安全终止

6.3.4epoll事件处理的改造

6.3.5连接延迟回收的具体应用

6.4LT发数据机制深释、gdb调试浅谈

6.4.1水平触发模式(LT)下发送数据深度解释

6.4.2gdb调试浅谈

6.5发数据、信号量、并发、多线程综合实战

6.5.1发送数据指导思想

6.5.2发送数据代码实战

6.5.3发送数据后续处理代码

第7章画龙点睛之服务器安全与完善

7.1过往总结、心跳包代码实战

7.1.1前面学习的总结

7.1.2心跳包概念

7.1.3心跳包代码实战

7.2控制连入数,黑客攻击防范及畸形包应对

7.2.1控制并发连入数量

7.2.2黑客攻击的防范

7.2.3超时直接踢出服务器的需求

7.3超负荷安全处理、综合压力测试

7.3.1输出一些观察信息

7.3.2遗漏的安全问题思考

7.3.3压力测试前的准备工作

7.3.4压力测试

7.4惊群、性能优化大局观

7.4.1CPU占比与惊群

7.4.2性能优化大局观

7.4.3性能优化的实施

7.4.4配置*大允许打开的文件句柄数

7.4.5内存池补充说明

第8章总结与展望

8.1遗留问题探讨增补之消息跳跃发送

8.1.1调整ngx_write_request_handler函数的代码顺序

8.1.2消息的跳跃发送

8.2结束语、课程总结

8.2.1本书概要总结

8.2.2技术总结

8.2.3项目的用途总结

8.2.4学习方法总结

8.2.5架构师之路

8.2.6代码统计与再见

展开全部

作者简介

王健伟,1995年毕业于哈尔滨工程大学计算机及应用专业,20多年软件开发经验,经历过数十个软件项目开发包括网络通信、网络安全、网络游戏等领域,多年的摸爬滚打使自身具备了极其深厚的开发实力和实战经验。中国首套网络安全在线扫描评估系统项目负责人,电子工业出版社2003年《Crystal Reports水晶报表设计与开发实务》书籍作者,全球同服独立游戏《冒险之路》制作人。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航