第一部分主要介绍网络编程基础知识。此部分主要论述Windows和Linux平台网络编程必备基础知识,未过多涉及不同操作系统特性。
第二部分和第三部分与操作系统有关。第二部分主要是Linux相关内容,而第三部分主要是Windows相关内容。从事Windows编程的朋友浏览第二部分内容后,同样可以提高技艺。
第四部分对全书内容进行总结,包含了作者在自身经验基础上总结的学习建议,还介绍了网络编程经典书籍。
......(更多)
作者简介:
尹圣雨
曾为风投公司开发人员,因出版IT类书籍并开展相关讲座而闻名。2004年至今一直参与OpenGL ES图形库的建设和3D加速芯片的开发,以及Khronos Group(移动国际标准化财团)的标准制定相关业务,还参与手机DMB芯片的开发。现任(株)Axissoft公司CTO,致力于构建基于Web的解决方案。
ripeness21@gmail.com
译者简介:
金国哲
毕业于重庆大学计算机学院,2009年至今在延边大学计算机系任教。
主讲课程:Java程序设计、Android应用开发、Web程序设计等。
主要研究方向:跨语言检索、自然语言处理等。
曾主持并参与某部队入侵检测系统、论文自动采集及管理系统等多个软件开发项目。
......(更多)
第一部分 开始网络编程
第1章 理解网络编程和套接字 2
1.1 理解网络编程和套接字 2
1.2 基于Linux的文件操作 9
1.3 基于Windows平台的实现 15
1.4 基于Windows的套接字相关函数及示例 18
1.5 习题 24
第2章 套接字类型与协议设置 26
2.1 套接字协议及其数据传输特性 26
2.2 Windows平台下的实现及验证 32
2.3 习题 35
第3章 地址族与数据序列 36
3.1 分配给套接字的IP地址与端口号 36
3.2 地址信息的表示 39
3.3 网络字节序与地址变换 42
3.4 网络地址的初始化与分配 45
3.5 基于Windows的实现 52
3.6 习题 57
第4章 基于TCP的服务器端/客户端(1) 59
4.1 理解TCP和UDP 59
4.2 实现基于TCP的服务器端/客户端 64
4.3 实现迭代服务器端/客户端 71
4.4 基于Windows的实现 77
4.5 习题 81
第5章 基于TCP的服务器端/客户端(2) 82
5.1 回声客户端的完美实现 82
5.2 TCP原理 91
5.3 基于Windows的实现 96
5.4 习题 99
第6章 基于UDP的服务器端/客户端 101
6.1 理解UDP 101
6.2 实现基于UDP的服务器端/客户端 103
6.3 UDP的数据传输特性和调用connect函数 109
6.4 基于Windows的实现 114
6.5 习题 117
第7章 优雅地断开套接字连接 118
7.1 基于TCP的半关闭 118
7.2 基于Windows的实现 124
7.3 习题 127
第8章 域名及网络地址 128
8.1 域名系统 128
8.2 IP地址和域名之间的转换 130
8.3 基于Windows的实现 136
8.4 习题 138
第9章 套接字的多种可选项 140
9.1 套接字可选项和I/O缓冲大小 140
9.2 SO_REUSEADDR 145
9.3 TCP_NODELAY 150
9.4 基于Windows的实现 152
9.5 习题 154
第10章 多进程服务器端 155
10.1 进程概念及应用 155
10.2 进程和僵尸进程 159
10.3 信号处理 165
10.4 基于多任务的并发服务器 173
10.5 分割TCP的I/O程序 178
10.6 习题 182
第11章 进程间通信 183
11.1 进程间通信的基本概念 183
11.2 运用进程间通信 188
11.3 习题 193
第12章 I/O复用 194
12.1 基于I/O复用的服务器端 194
12.2 理解select函数并实现服务器端 197
12.3 基于Windows的实现 206
12.4 习题 209
第13章 多种I/O函数 211
13.1 send & recv函数 211
13.2 readv & writev函数 221
13.3 基于Windows的实现 225
13.4 习题 229
第14章 多播与广播 230
14.1 多播 230
14.2 广播 236
14.3 基于Windows的实现 240
14.4 习题 242
第二部分 基于Linux的编程
第15章 套接字和标准I/O 246
15.1 标准I/O函数的优点 246
15.2 使用标准I/O函数 249
15.3 基于套接字的标准I/O函数使用 252
15.4 习题 254
第16章 关于I/O流分离的其他内容 255
16.1 分离I/O流 255
16.2 文件描述符的复制和半关闭 259
16.3 习题 264
第17章 优于select的epoll 265
17.1 epoll理解及应用 265
17.2 条件触发和边缘触发 273
17.3 习题 283
第18章 多线程服务器端的实现 284
18.1 理解线程的概念 284
18.2 线程创建及运行 287
18.3 线程存在的问题和临界区 296
18.4 线程同步 299
18.5 线程的销毁和多线程并发服务器端的实现 306
18.6 习题 312
第三部分 基于Windows的编程
第19章 Windows平台下线程的使用 316
19.1 内核对象 316
19.2 基于Windows的线程创建 317
19.3 内核对象的2种状态 322
19.4 习题 325
第20章 Windows中的线程同步 327
20.1 同步方法的分类及CRITICAL_SECTION同步 327
20.2 内核模式的同步方法 331
20.3 Windows平台下实现多线程服务器端 339
20.4 习题 343
第21章 异步通知I/O模型 344
21.1 理解异步通知I/O模型 344
21.2 理解和实现异步通知I/O模型 346
21.3 习题 356
第22章 重叠I/O模型 357
22.1 理解重叠I/O模型 357
22.2 重叠I/O的I/O完成确认 362
22.3 习题 370
第23章 IOCP 371
23.1 通过重叠I/O理解IOCP 371
23.2 分阶段实现IOCP程序 379
23.3 习题 387
第四部分 结束网络编程
第24章 制作HTTP服务器端 390
24.1 HTTP概要 390
24.2 实现简单的Web服务器端 394
24.3 习题 401
第25章 进阶内容 403
25.1 网络编程学习的其他内容 403
25.2 网络编程相关书籍介绍 404
索引 406
......(更多)
大部分软件是基于网络环境开发的,因此,网络编程成为程序员的一种必备技能。
INADDR_ANY--自动获取运行服务器的IP地址,若同一计算机中分配有多个IP,则只要端口号一致,可以从不同IP地址接收数据。若只有一个NIC(Network Interface Card),则直接使用INADDR_ANY。
......(更多)