更新时间:2023-08-31 19:55:41
封面
版权信息
内容简介
前言
第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 基本概念