内容简介:
第一部分主要介绍网络编程基础知识。此部分主要论述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和UDP59
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 理解UDP101
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_REUSEADDR145
9.3 TCP_NODELAY150
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/O246
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的epoll265
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章 IOCP371
23.1 通过重叠I/O理解IOCP371
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