TCP/IP网络编程基础教程PDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:王雷
- 出 版 社:北京:北京理工大学出版社
- 出版年份:2017
- ISBN:9787568237628
- 页数:275 页
第1章 基于套接字的TCP/IP网络通信原理与模型 1
1.1 TCP/IP协议概述 1
1.1.1 TCP/IP参考模型 1
1.1.2 TCP/IP网络通信中的客户-服务器模型 2
1.1.3 TCP/IP参考模型的通信原理 2
1.2 基于套接字的网络通信原理 4
1.2.1 套接字概述 4
1.2.2 基于套接字的TCP/IP网络通信原理 5
1.2.3 基于套接字的TCP/IP网络通信软件实现流程 8
1.3 基于套接字的TCP/IP网络通信过程中的相关问题 10
1.3.1 客户算法中服务器套接字端点地址查找问题 10
1.3.2 客户算法中本地端点地址的选择问题 10
1.3.3 套接字端点地址的存储结构问题 11
1.3.4 客户-服务器模型中的汇聚点问题 12
1.3.5 主机字节顺序与网络字节顺序问题 12
1.3.6 IP地址与端口号的查找问题 13
1.3.7 由协议名查找协议号的问题 15
1.3.8 服务器算法中熟知端口的绑定问题 16
1.4 套接字API概述 16
1.4.1 BSD UNIX套接字API系统函数简介 16
1.4.2 Windows套接字API扩展系统函数简介 24
1.5 基于套接字的TCP/IP网络通信模型与实现方法 34
1.5.1 UNIX/Linux环境下UDP套接字通信模型与实现方法 34
1.5.2 UNIX/Linux环境下TCP套接字通信模型与实现方法 37
1.5.3 Windows环境下UDP套接字通信模型与实现方法 41
1.5.4 Windows环境下TCP套接字通信模型与实现方法 45
1.6 本章小结 50
本章习题 50
第2章 循环服务器软件的实现原理与方法 51
2.1 客户/服务器模型中服务器软件实现的复杂性 51
2.1.1 服务器设功能需求的复杂性 51
2.1.2 服务器类型的复杂性 51
2.2 循环服务器的进程结构 53
2.2.1 循环UDP服务器的进程结构 53
2.2.2 循环TCP服务器的进程结构 54
2.3 循环服务器软件的设计流程 54
2.3.1 循环UDP服务器软件的设计流程 54
2.3.2 循环TCP服务器软件的设计流程 56
2.4 基于循环服务器的网络通信例程剖析 57
2.4.1 相关系统函数及其调用方法简介 57
2.4.2 UNIX/Linux环境下基于TCP套接字的例程剖析 72
2.4.3 Windows环境下基于TCP套接字的例程剖析 77
2.4.4 UNIX/Linux环境下基于UDP套接字的例程剖析 82
2.4.5 Windows环境下基于UDP套接字的例程剖析 86
2.4.6 UNIX/Linux环境下基于TCP套接字的文件传输例程剖析 91
2.4.7 UNIX/Linux环境下基于TCP套接字的音频传输例程剖析 95
2.4.8 Windows环境下基于TCP套接字的图像传输例程剖析 104
2.4.9 Windows环境下基于TCP套接字的视频传输例程剖析 108
2.5 本章小结 111
本章习题 112
第3章 服务器与客户进程中的并发机制 113
3.1 服务器与客户进程中的并发概念 113
3.1.1 服务器进程中的并发问题 113
3.1.2 客户进程中的并发问题 114
3.1.3 服务器与客户端并发性的实现方法 115
3.1.4 循环服务器与并发服务器 115
3.1.5 多进程与多线程并发概念 115
3.1.6 并发等级 116
3.2 UNIX/Linux环境下基于多进程并发机制 117
3.2.1 创建一个新进程 117
3.2.2 终止一个进程 118
3.2.3 获得一个进程的进程标识 118
3.2.4 获得一个进程的父进程的进程标识 119
3.2.5 僵尸进程的清除 119
3.2.6 多进程例程剖析 124
3.3 UNIX/Linux环境下基于多线程的并发机制 125
3.3.1 创建一个新线程 125
3.3.2 设置线程的运行属性 127
3.3.3 终止一个线程 132
3.3.4 获得一个线程的线程标识 132
3.3.5 多线程例程剖析 132
3.4 Windows环境下基于多进程的并发机制 133
3.4.1 创建一个新进程 133
3.4.2 打开一个进程 137
3.4.3 终止/关闭一个进程 137
3.4.4 获得进程的可执行文件或DLL对应的句柄 138
3.4.5 获取与指定窗口关联在一起的一个进程和线程标识符 138
3.4.6 获取进程的运行时间 138
3.4.7 获取当前进程ID 138
3.4.8 等待子进程/子线程的结束 139
3.4.9 多进程例程剖析 140
3.5 Windows环境下基于多线程的并发机制 141
3.5.1 在本地进程中创建一个新线程 141
3.5.2 在远程进程中创建一个新线程 142
3.5.3 获取/设置线程的优先级 143
3.5.4 终止一个线程 144
3.5.5 挂起/启动一个线程 145
3.5.6 获得一个线程的标识 145
3.5.7 多线程例程剖析 145
3.6 从线程/进程分配技术 146
3.6.1 从线程/进程预分配技术 146
3.6.2 延迟的从线程/进程分配技术 146
3.6.3 两种从线程/进程分配技术的结合 147
3.7 基于多进程与基于多线程的并发机制的性能比较 147
3.7.1 多进程与多线程的任务执行效率比较 147
3.7.2 多进程与多线程的创建与销毁效率比较 149
3.8 本章小结 151
本章习题 152
第4章 多进程并发机制的实现原理与方法 153
4.1 多进程并发TCP服务器与客户端进程结构 153
4.1.1 多进程并发TCP服务器进程结构 153
4.1.2 多进程并发客户端进程结构 154
4.2 UNIX/Linux环境下多进程并发TCP服务器软件设计流程 154
4.2.1 不固定进程数的并发TCP服务器软件设计流程 154
4.2.2 固定进程数的并发TCP服务器软件设计流程 155
4.3 UNIX/Linux环境下多进程并发TCP服务器通信实现例程 155
4.3.1 不固定进程数的多进程并发TCP服务器通信实现例程 155
4.3.2 固定进程数的多进程并发TCP服务器通信实现例程 160
4.3.3 UNIX/Linux服务器与Windows客户端通信实现例程 164
4.3.4 基于SMTP和POP3协议的电子邮件收发实现例程 166
4.4 本章小结 173
本章习题 174
第5章 多线程并发TCP服务器软件的实现原理与方法 175
5.1 线程之间的协调与同步 175
5.1.1 UNIX/Linux环境下线程之间的协调与同步 175
5.1.2 Windows环境下线程之间的协调与同步 192
5.2 基于多线程的并发TCP服务器软件设计流程 202
5.2.1 不固定线程数的并发TCP服务器软件设计流程 202
5.2.2 固定线程数的并发TCP服务器软件设计流程 203
5.3 多线程并发TCP服务器实现例程 203
5.3.1 UNIX/Linux环境下多线程并发TCP服务器实现例程 203
5.3.2 Windows环境下多线程并发TCP服务器实现例程 208
5.4 本章小结 212
本章习题 213
第6章 单线程并发机制的实现原理与方法 214
6.1 单线程并发TCP服务器与客户端的进程结构 214
6.1.1 单线程并发TCP服务器的进程结构 214
6.1.2 单线程并发TCP客户端的进程结构 215
6.2 单线程并发TCP服务器软件的设计流程 216
6.2.1 UNIX/Linux环境下单线程并发TCP服务器软件设计流程 216
6.2.2 Windows环境下单线程并发TCP服务器软件设计流程 218
6.3 单线程并发TCP服务器实现例程 219
6.3.1 UNIX/Linux环境下单线程并发TCP服务器实现例程 219
6.3.2 Windows环境下单线程并发TCP服务器实现例程 221
6.3.3 UNIX/Linux环境下单线程并发TCP客户端实现例程 223
6.3.4 Windows环境下单线程并发TCP客户端实现例程 228
6.4 本章小结 230
本章习题 230
第7章 基于POOL和EPOLL的并发机制与实现方法 231
7.1 POOL简介 231
7.1.1 POOL的定义 231
7.1.2 线程池的基本工作原理 232
7.1.3 线程池的应用范围 233
7.1.4 使用线程池的风险 234
7.2 UNIX/Linux环境下线程池的C语言实现例程 235
7.2.1 线程池的主要组成部分 235
7.2.2 线程池的C语言实现例程剖析 236
7.2.3 基于线程池的并发TCP服务器例程 240
7.4 EPOLL简介 248
7.4.1 EPOLL的定义 248
7.4.2 EPOLL的基本接口函数 248
7.4.3 EPOLL的事件模式 249
7.4.4 EPOLL的工作原理 250
7.5 基于EPOLL线程池的C语言例程 250
7.5.1 基于EPOLL线程池的C语言例程剖析 250
7.5.2 基于EPOLL的并发TCP服务器例程 254
7.6 本章小结 257
本章习题 257
第8章 客户/服务器系统中的死锁问题 259
8.1 死锁的定义 259
8.2 产生死锁的原因 260
8.2.1 竞争资源引起进程死锁 260
8.2.2 进程推进顺序不当引起死锁 260
8.3 产生死锁的必要条件 260
8.4 处理死锁的基本方法 261
8.5 存在死锁问题的多线程例程 262
8.6 本章小结 263
本章习题 264
附录A GCC编译器简介 265
A.1 GCC编译器所支持的源程序格式 265
A.2 GCC编译选项解析 266
A.2.1 GCC编译选项分类 266
A.2.2 GCC编译过程解析 268
A.2.3 多个程序文件的编译 269
A.3 GCC编译器的安装 269
附录B 课程实验 272
B.1 课程实验报告模板 272
B.2 《SocketAPI函数调用方法》课程实验 273
B.3 《电子邮件收发系统的设计与实现》课程实验 273
B.4 《文本聊天系统的设计与实现》课程实验 273
B.5 《多媒体网络聊天系统的设计与实现》课程实验 274
参考文献 275
- 《市政工程基础》杨岚编著 2009
- 《零基础学会素描》王金著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《生物质甘油共气化制氢基础研究》赵丽霞 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《激光加工实训技能指导理实一体化教程 下》王秀军,徐永红主编;刘波,刘克生副主编 2017
- 《AutoCAD 2019 循序渐进教程》雷焕平,吴昌松,陈兴奎主编 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《中国铁路人 第三届现实主义网络文学征文大赛一等奖》恒传录著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019