万本电子书0元读

万本电子书0元读

顶部广告

Linux C/C++服务器开发实践电子书

  本书从五大服务器编程基础技术始,逐步深到四大项目案例行融合发,融合网络编程和一些数据库、跨平台界面编程知识,使得案例讲解系统完整,甚至稍微修改一下就可以上升为商用软件,比如后一章的并发游戏服务器。       本书涵盖Linux网络编程从基础到高级发的知识,重讲解了技术性较强的TCP编程、UDP编程和I/O模型编程,同时对每个知识都从原始概念和基本原理行详细和透彻的分析,对比较复杂和难度较高的内容绘制了几百幅原理图行示意。书中的示例代码大多是从实际项目总结而来,具有很强的实用性。

售       价:¥

纸质售价:¥47.50购买纸书

78人正在读 | 0人评论 6.4

作       者:朱文伟,李建英

出  版  社:清华大学出版社

出版时间:2022-07-01

字       数:30.9万

所属分类: 科技 > 计算机/网络 > 软件系统

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书较为全面地介绍了基于Linux网络编程的基础知识和编程技术,章节安排贴近企业项目需求,对基于Linux C/C 语言的多线程编程和Linux操作系统支持的网络库函数等行讲解,由易到难,逐层递。 本书共分12章,内容包括网络概述、网络基础概念、套字、TCP编程、UDP编程、原始套字编程、网络I/O模型、服务器设计,以及四大综合实践项目(HTTP服务器、FTP服务器、并发聊天服务器与C/S和P2P联合架构的并发游戏服务器),通过项目练习帮助读者巩固所学的编程技术。 本书适合具有Linux C/C 编程基础、需要掌握Linux服务器编程的发人员阅读,也适合高等院校和培训学校计算机软件发相关专业的师生作为参考用书。<br/>【推荐语】<br/>  本书从五大服务器编程基础技术始,逐步深到四大项目案例行融合发,融合网络编程和一些数据库、跨平台界面编程知识,使得案例讲解系统完整,甚至稍微修改一下就可以上升为商用软件,比如后一章的并发游戏服务器。       本书涵盖Linux网络编程从基础到高级发的知识,重讲解了技术性较强的TCP编程、UDP编程和I/O模型编程,同时对每个知识都从原始概念和基本原理行详细和透彻的分析,对比较复杂和难度较高的内容绘制了几百幅原理图行示意。书中的示例代码大多是从实际项目总结而来,具有很强的实用性。       通常网络编程书中,只会分析一个综合案例,而本书干货颇多,提供了HTTP服务器、FTP服务器、并发聊天服务器与并发游戏服务器四大综合案例,可以作为课程设计以及毕业设计的素材。<br/>【作者】<br/>朱文伟,名校计算机专业统招硕士,20年C C 、Java发经验。主导发过密码、图形、人工智能等产品。精通Linux、Windows系统发及数据库发技术。著有图书《Windows C/C 加密解密实战》《密码学原理与Java实现》《Linux C与C 一线发实践》《Visual C 2017从门到精通》。<br/>
目录展开

内容简介

前言

第1章 TCP/IP基础

1.1 TCP/IP协议的分层结构

1.2 应用层

1.2.1 DNS

1.2.2 端口

1.3 传输层

1.3.1 TCP协议

1.3.2 UDP协议

1.4 网络层

1.4.1 IP协议

1.4.2 ARP协议

1.4.3 RARP协议

1.4.4 ICMP协议

1.5 数据链路层

1.5.1 数据链路层的基本概念

1.5.2 数据链路层主要功能

第2章 搭建Linux开发环境

2.1 准备虚拟机环境

2.1.1 在VMware下安装Linux

2.1.2 开启root账户

2.1.3 关闭防火墙

2.1.4 安装网络工具包

2.1.5 启用SSH

2.1.6 拍摄快照

2.1.7 连接虚拟机Linux

2.1.8 和虚拟机互传文件

2.2 搭建Linux下C/C++开发环境

2.3 搭建Windows下Linux C/C++开发环境

2.3.1 Windows下非集成式的Linux C/C++开发环境

2.3.2 Windows下集成式的Linux C/C++开发环境

第3章 多线程基本编程

3.1 使用多线程的好处

3.2 多线程编程的基本概念

3.2.1 操作系统和多线程

3.2.2 线程的基本概念

3.2.3 线程的状态

3.2.4 线程函数

3.2.5 线程标识

3.2.6 C++多线程开发的两种方式

3.3 利用POSIX多线程API函数进行多线程开发

3.3.1 线程的创建

3.3.2 线程的属性

3.3.3 线程的结束

3.3.4 线程退出时的清理机会

3.4 C++11中的线程类

3.4.1 线程的创建

3.4.2 线程的标识符

3.4.3 当前线程this_thread

3.5 线程同步

3.5.1 同步的基本概念

3.5.2 临界资源和临界区

3.6 基于POSIX进行线程同步

3.6.1 互斥锁

3.6.2 读写锁

3.6.3 条件变量

3.7 C++11/14中的线程同步

3.7.1 基本互斥锁std::mutex

3.7.2 定时互斥锁std::time_mutex

3.8 线程池

3.8.1 线程池的定义

3.8.2 使用线程池的原因

3.8.3 基于POSIX实现线程池

3.8.4 基于C++11实现线程池

第4章 TCP服务器编程

4.1 套接字的基本概念

4.2 网络程序的架构

4.3 IP地址的格式转换

4.4 套接字的类型

4.5 套接字地址

4.5.1 通用socket地址

4.5.2 专用socket地址

4.5.3 获取套接字地址

4.6 主机字节序和网络字节序

4.7 协议族和地址族

4.8 TCP套接字编程的基本步骤

4.9 TCP套接字编程的相关函数

4.9.1 BSD socket的头文件

4.9.2 socket函数

4.9.3 bind函数

4.9.4 listen函数

4.9.5 accept函数

4.9.6 connect函数

4.9.7 send函数

4.9.8 recv函数

4.9.9 close函数

4.10 简单的TCP套接字编程

4.11 深入理解TCP编程

4.11.1 数据发送和接收涉及的缓冲区

4.11.2 TCP数据传输的特点

4.11.3 数据发送的六种情形

4.11.4 数据接收时的情形

4.11.5 一次请求响应的数据接收

4.11.6 多次请求响应的数据接收

4.12 I/O控制命令

4.13 套接字选项

4.13.1 基本概念

4.13.2 选项的级别

4.13.3 获取套接字选项

4.13.4 设置套接字选项

第5章 UDP服务器编程

5.1 UDP套接字编程的基本步骤

5.2 UDP套接字编程的相关函数

5.2.1 sendto函数

5.2.2 recvfrom函数

5.3 实战UDP套接字

5.4 UDP丢包及无序问题

第6章 原始套接字编程

6.1 原始套接字的强大功能

6.2 创建原始套接字的方式

6.3 原始套接字的基本编程步骤

6.3.1 创建原始套接字函数socket

6.3.2 接收函数recvfrom

6.3.3 发送函数sendto

6.4 AF_INET方式捕获报文

6.5 PF_PACKET方式捕获报文

第7章 服务器模型设计

7.1 I/O模型

7.1.1 基本概念

7.1.2 同步和异步

7.1.3 阻塞和非阻塞

7.1.4 同步与异步和阻塞与非阻塞的关系

7.1.5 采用socket I/O模型的原因

7.1.6 (同步)阻塞I/O模型

7.1.7 (同步)非阻塞式I/O模型

7.1.8 (同步)I/O多路复用模型

7.1.9 (同步)信号驱动式I/O模型

7.1.10 异步I/O模型

7.1.11 五种I/O模型比较

7.2 (分时)循环服务器

7.2.1 UDP循环服务器

7.2.2 TCP循环服务器

7.3 多进程并发服务器

7.4 多线程并发服务器

7.5 I/O多路复用的服务器

7.5.1 使用场景

7.5.2 基于select的服务器

7.5.3 基于poll的服务器

7.5.4 基于epoll的服务器

第8章 网络性能工具Iperf

8.1 Iperf的特点

8.2 Iperf的工作原理

8.3 Iperf的主要功能

8.4 Iperf在Linux下的使用

8.4.1 在Linux下安装Iperf

8.4.2 Iperf的简单使用

8.5 Iperf在Windows下的使用

8.5.1 命令行版本

8.5.2 图形化版本

第9章 HTTP服务器编程

9.1 CGI程序的工作方式

9.2 架设Web服务器Apache

9.3 HTTP的工作原理

9.4 HTTP的特点

9.5 HTTP的消息结构

9.6 客户端请求消息

9.7 服务器响应消息

9.8 HTTP状态码

9.9 HTTP状态码分类

9.10 实现HTTP服务器

9.10.1 逻辑架构

9.10.2 程序工作流程

9.10.3 主要功能函数

9.10.4 工程实现

第10章 基于Libevent的FTP服务器

10.1 Reactor模式

10.1.1 Reactor模式的优点

10.1.2 Reactor模式的框架

10.1.3 Reactor事件处理流程

10.2 使用Libevnet的基本流程

10.3 下载和编译Libevent

10.4 FTP概述

10.4.1 FTP的工作原理

10.4.2 FTP的传输方式

10.4.3 FTP的工作方式

10.4.4 FTP命令

10.4.5 FTP应答码

10.5 开发FTP服务器

10.6 开发FTP客户端

10.6.1 客户端需求分析

10.6.2 概要设计

10.6.3 客户端工作流程设计

10.6.4 实现主界面

10.6.5 实现登录界面

10.6.6 实现登录后的操作界面

10.6.7 运行结果

第11章 并发聊天服务器

11.1 系统平台的选择

11.1.1 应用系统平台模式的选择

11.1.2 C/S模式介绍

11.1.3 数据库系统的选择

11.2 系统需求分析

11.2.1 即时消息的一般需求

11.2.2 即时消息的协议需求

11.2.3 即时消息的安全需求

11.2.4 即时消息的加密和鉴别

11.2.5 即时消息的注册需求

11.2.6 即时消息的通信需求

11.3 系统总体设计

11.4 即时通信系统的实施原理

11.4.1 IM的工作方式

11.4.2 IM的基本技术原理

11.4.3 IM的通信方式

11.5 功能模块划分

11.5.1 模块划分

11.5.2 服务器端功能

11.5.3 客户端功能

11.5.4 服务器端多线程

11.5.5 客户端多线程

11.6 数据库设计

11.6.1 数据库的选择

11.6.2 准备MySQL环境

11.6.3 Linux下的MySQL的C编程

11.6.4 聊天系统数据库设计

11.6.5 服务器端设计

11.6.6 客户端设计

第12章 C/S和P2P联合架构的游戏服务器

12.1 网络游戏服务器发展现状

12.2 现有网络游戏服务器结构

12.2.1 C/S结构

12.2.2 游戏大厅代理结构

12.2.3 P2P结构

12.3 P2P网络游戏技术分析

12.4 网络游戏的同步机制

12.4.1 事件一致性

12.4.2 时间同步

12.5 总体设计

12.5.1 服务器系统架构模型

12.5.2 传输层协议的选择

12.5.3 协议包设计

12.6 数据库设计

12.7 服务器端详细设计和实现

12.8 客户端详细设计和实现

12.8.1 五子棋简介

12.8.2 棋盘类CTable

12.8.3 游戏模式类CGame

12.8.4 消息机制

12.8.5 游戏算法

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部