《TCP/IP网络编程技术基础》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:王雷编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:7512109067
  • 页数:185 页
图书介绍:《电子商务应用与运营》课程是电子商务专业开设的一门将技术与商务融合,将传统与网络对接的实践性课程,是电子商务专业的专业核心课程,属于“学习后入职前”的“教学做”合一课程,通过课程学习和职业化训练,培养学生对电子商务应用与运营流程有深刻认识,训练学生能从事电子商务运作和进行互联网创业的能力,促进学生完成从“校园人”到“准职业人”的转变,并为毕业顶岗实习打下基础,同时也是市场营销、市场开发等专业的重要拓展课程。

第1章 TCP/IP网络通信原理 1

1.1 TCP/IP协议概述 1

1.1.1 TCP/IP参考模型 1

1.1.2 TCP/IP参考模型的通信原理 2

1.1.3 LINUX系统实现网络通信的基本原理 3

1.2 TCP/IP网络通信中的客户-服务器模型 9

1.2.1 客户-服务器模型 9

1.2.2 客户-服务器模型中的汇聚点问题及其解决方法 10

1.2.3 客户-服务器模型中服务器设计与实现的复杂性 10

1.2.4 服务器中的并发问题 11

1.2.5 服务器并发性的实现方法 11

1.2.6 服务器的分类 12

1.3 TCP/IP网络通信中的客户软件的设计流程 14

1.3.1 TCP客户算法 14

1.3.2 UDP客户算法 14

1.3.3 客户算法中服务器套接字端点地址的查找问题 14

1.3.4 客户算法中本地端点地址的选择问题 19

1.4 TCP/IP网络通信中的服务器软件的设计流程 20

1.4.1 主动套接字与被动套接字 20

1.4.2 TCP服务器算法 20

1.4.3 UDP服务器算法 20

1.4.4 服务器算法中熟知端口的绑定问题 21

1.5 本章小结 21

本章习题 21

第2章 套接字API 23

2.1 套接字API概述 23

2.2 套接字API中的主要系统函数 24

2.2.1 socket()函数 24

2.2.2 connect()函数 24

2.2.3 bind()函数 25

2.2.4 listen()函数 25

2.2.5 accept()函数 26

2.2.6 send()函数 26

2.2.7 recv()函数 27

2.2.8 sendto()函数 27

2.2.9 recvfrom()函数 28

2.2.10 close()函数 28

2.2.11 shutdown()函数 29

2.2.12 getpeername()函数 29

2.2.13 setsockopt()函数 30

2.2.14 getsockopt()函数 31

2.3 基于套接字API的C/S网络通信模型 32

2.3.1 基于UDP的C/S网络通信模型 32

2.3.2 基于TCP的C/S网络通信模型 34

2.4 本章小结 36

本章习题 36

第3章 循环服务器例程剖析 37

3.1 循环服务器进程结构 37

3.1.1 循环的UDP服务器进程结构 37

3.1.2 循环的TCP服务器进程结构 37

3.2 循环服务器软件设计流程 38

3.2.1 循环的UDP服务器软件设计流程 38

3.2.2 循环的TCP服务器软件设计流程 39

3.3 循环的无连接的TIME服务器例程 40

3.3.1 相关系统函数及其调用方法简介 40

3.3.2 服务器例程剖析 47

3.4 访问TIME服务的无连接的客户端例程 51

3.5 循环的面向连接的DAYTIME服务器例程 53

3.6 访问DAYTIME服务的面向连接的客户端例程 55

3.7 本章小结 56

本章习题 57

第4章 服务器中的并发机制 58

4.1 服务器中的并发概念 58

4.1.1 循环服务器与并发服务器 58

4.1.2 基于多进程或多线程的服务器并发概念 58

4.1.3 并发等级 59

4.2 基于多进程的服务器并发机制 60

4.2.1 创建一个新进程 60

4.2.2 终止一个进程 61

4.2.3 获得一个进程的进程标识 61

4.2.4 获得一个进程的父进程的进程标识 61

4.2.5 僵尸进程的清除 62

4.3 基于多线程的服务器并发机制 67

4.3.1 创建一个新线程 67

4.3.2 设置线程的运行属性 69

4.3.3 终止一个线程 74

4.3.4 获得一个线程的线程标识 75

4.3.5 多线程例程剖析 75

4.4 从线程/进程分配技术 76

4.4.1 从线程/进程预分配技术 76

4.4.2 延迟的从线程/进程分配技术 76

4.4.3 两种从线程/进程分配技术的结合 77

4.5 基于多进程与基于多线程的并发机制的性能比较 77

4.5.1 多进程与多线程的任务执行效率比较 77

4.5.2 多进程与多线程的创建与销毁效率比较 79

4.6 本章小结 82

本章习题 82

第5章 基于多进程并发的面向连接服务器例程剖析 83

5.1 基于多进程并发的面向连接服务器的进程结构 83

5.2 基于多进程并发的面向连接服务器软件的设计流程 84

5.2.1 不固定进程数的并发模型设计流程 84

5.2.2 固定进程数的并发模型设计流程 84

5.3 基于多进程并发的面向连接服务器例程 85

5.3.1 例程一 85

5.3.2 例程二 89

5.4 本章小结 95

本章习题 95

第6章 基于多线程并发的面向连接服务器例程剖析 96

6.1 线程之间的协调与同步 96

6.1.1 互斥锁 96

6.1.2 信号量 103

6.1.3 条件变量 112

6.2 基于多线程并发的面向连接服务器软件的设计流程 115

6.3 基于多线程并发的面向连接服务器例程 117

6.4 本章小结 120

本章习题 120

第7章 基于单线程并发的面向连接服务器例程剖析 121

7.1 单线程并发服务器的线程结构 121

7.2 单线程并发服务器程序设计流程 122

7.3 基于单线程并发的面向连接服务器例程 125

7.4 本章小结 130

本章习题 131

第8章 基于线程池并发的面向连接服务器例程剖析 132

8.1 线程池简介 132

8.1.1 线程池定义 132

8.1.2 线程池的基本工作原理 133

8.1.3 线程池的应用范围 134

8.1.4 使用线程池的风险 135

8.2 一个LINUX下线程池的C语言实现 135

8.3 基于线程池并发的面向连接服务器例程 140

8.4 本章小结 148

本章习题 148

第9章 基于Epoll的并发的面向连接服务器例程剖析 149

9.1 Epoll简介 149

9.2 Epoll的工作原理与调用方法 150

9.2.1 Epoll的基本接口函数 150

9.2.2 Epoll的事件模式 151

9.2.3 Epoll的工作原理 151

9.3 基于Epoll线程池的C语言例程 152

9.4 基于Epoll的并发的面向连接服务器例程 156

9.5 本章小结 160

本章习题 160

第10章 客户进程中的并发机制 161

10.1 实现并发客户的意义与进程结构 161

10.1.1 实现并发客户的意义 161

10.1.2 基于多线程/多进程的并发客户的进程结构 162

10.1.3 基于单线程的并发客户的进程结构 162

10.2 基于多线程的并发客户例程 163

10.3 基于单线程的并发客户例程 165

10.4 基于多进程的并发客户例程 167

10.5 本章小结 169

本章习题 169

第11章 客户-服务器系统中的死锁问题 170

11.1 死锁的定义 170

11.2 产生死锁的原因 170

11.2.1 竞争资源引起进程死锁 170

11.2.2 进程推进顺序不当引起死锁 171

11.3 产生死锁的必要条件 171

11.4 处理死锁的基本方法 172

11.5 存在死锁问题的多线程例程 173

11.6 本章小结 174

本章习题 175

第12章 GCC编译器简介 176

12.1 GCC编译器所支持的源程序格式 176

12.2 GCC编译选项解析 176

12.2.1 GCC编译选项分类 176

12.2.2 GCC编译过程解析 179

12.2.3 多个程序文件的编译 180

12.3 GCC编译器的安装 180

12.4 本章小结 182

本章习题 183

参考文献 184