《TCP/IP网络编程》涵盖操作系统、系统编程、TCP/IP协议等多种内容,结构清晰、讲解细致、通俗易懂。书中收录丰富示例,详细展现了Linux和Windows平台下套接字编程的共性与个性。特别是从代码角度说明了不同模型服务器端的区别,还包括了条件触发与边缘触发等知识,对开发实践也有很大帮助。
《TCP/IP网络编程》针对网络编程初学者,面向具备C语言基础的套接字网络编程学习者,适合所有希望学习Linux和Windows网络编程的人。
第一部分 开始网络编程
第1章 理解网络编程和套接字
1.1 理解网络编程和套接字
1.2 基于Linux的文件操作
1.3 基于Windows平台的实现
1.4 基于Windows的套接字相关函数及示例
1.5 习题
第2章 套接字类型与协议设置
2.1 套接字协议及其数据传输特性
2.2 Windows平台下的实现及验证
2.3 习题
第3章 地址族与数据序列
3.1 分配给套接字的IP地址与端口号
3.2 地址信息的表示
3.3 网络字节序与地址变换
3.4 网络地址的初始化与分配
3.5 基于Windows的实现
3.6 习题
第4章 基于TCP的服务器端/客户端(1)
4.1 理解TCP和UDP
4.2 实现基于TCP的服务器端/客户端
4.3 实现迭代服务器端/客户端
4.4 基于Windows的实现
4.5 习题
第5章 基于TCP的服务器端/客户端(2)
5.1 回声客户端的完美实现
5.2 TCP原理
5.3 基于Windows的实现
5.4 习题
第6章 基于UDP的服务器端/客户端
6.1 理解UDP
6.2 实现基于UDP的服务器端/客户端
6.3 UDP的数据传输特性和调用connect函数
6.4 基于Windows的实现
6.5 习题
第7章 优雅地断开套接字连接
7.1 基于TCP的半关闭
7.2 基于Windows的实现
7.3 习题
第8章 域名及网络地址
8.1 域名系统
8.2 IP地址和域名之间的转换
8.3 基于Windows的实现
8.4 习题
第9章 套接字的多种可选项
9.1 套接字可选项和I/O缓冲大小
9.2 SO_REUSEADDR
9.3 TCP_NODELAY
9.4 基于Windows的实现
9.5 习题
第10章 多进程服务器端
10.1 进程概念及应用
10.2 进程和僵尸进程
10.3 信号处理
10.4 基于多任务的并发服务器
10.5 分割TCP的I/O程序
10.6 习题
第11章 进程间通信
11.1 进程间通信的基本概念
11.2 运用进程间通信
11.3 习题
第12章 I/O复用
12.1 基于I/O复用的服务器端
12.2 理解select函数并实现服务器端
12.3 基于Windows的实现
12.4 习题
第13章 多种I/O函数
13.1 send & recv函数
13.2 readv & writev函数
13.3 基于Windows的实现
13.4 习题
第14章 多播与广播
14.1 多播
14.2 广播
14.3 基于Windows的实现
14.4 习题
第二部分 基于Linux的编程
第15章 套接字和标准I/O
15.1 标准I/O函数的优点
15.2 使用标准I/O函数
15.3 基于套接字的标准I/O函数使用
15.4 习题
第16章 关于I/O流分离的其他内容
16.1 分离I/O流
16.2 文件描述符的复制和半关闭
16.3 习题
第17章 优于select的epoll
17.1 epoll理解及应用
17.2 条件触发和边缘触发
17.3 习题
第18章 多线程服务器端的实现
18.1 理解线程的概念
18.2 线程创建及运行
18.3 线程存在的问题和临界区
18.4 线程同步
18.5 线程的销毁和多线程并发服务器端的实现
18.6 习题
第三部分 基于Windows的编程
第19章 Windows平台下线程的使用
19.1 内核对象
19.2 基于Windows的线程创建
19.3 内核对象的2种状态
19.4 习题
第20章 Windows中的线程同步
20.1 同步方法的分类及CRITICAL_SECTION同步
20.2 内核模式的同步方法
20.3 Windows平台下实现多线程服务器端
20.4 习题
第21章 异步通知I/O模型
21.1 理解异步通知I/O模型
21.2 理解和实现异步通知I/O模型
21.3 习题
第22章 重叠I/O模型
22.1 理解重叠I/O模型
22.2 重叠I/O的I/O完成确认
22.3 习题
第23章 IOCP
23.1 通过重叠I/O理解IOCP
23.2 分阶段实现IOCP程序
23.3 习题
第四部分 结束网络编程
第24章 制作HTTP服务器端
24.1 HTTP概要
24.2 实现简单的Web服务器端
24.3 习题
第25章 进阶内容
25.1 网络编程学习的其他内容
25.2 网络编程相关书籍介绍
索引