内容简介:
这是一部传世之作!顶级网络编程专家Bill Fenner和Andrew M. Rudoff应邀执笔,对W. Richard Stevens的经典作品进行修订。书中吸纳了近几年网络技术的发展,增添了IPv6、SCTP协议和密钥管理套接字等内容,深入讨论了最新的关键标准、实现和技术。
书中的所有示例都是在UNIX系统上测试通过的真实的、可运行的代码,继承了Stevens一直强调的理念:“学习网络编程的最好方法就是下载这些程序,对其进行修改和改进。只有这样实际编写代码才能深入理解有关概念和方法。”读者可以从图灵网站(www.turingbook.com)本书网页免费注册下载这些示例的源代码。
本书为UNIX网络编程提供全面的指导,是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。
作者简介:
W. Richard Stevens(1951—1999) 国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有《TCP/IP详解》(三卷)、《UNIX环境高级编程》和《UNIX网络编程》(两卷),均为不朽的经典著作。
Bill Fenner AT&T实验室的主要技术人员,专攻IP多播、网络管理和测量,他是IETF路由的领域主管之一,负责审批作为RFC出版的所有路由相关文档。
Andrew M. Rudoff Sun公司的资深软件工程师,专攻网络、操作系统内核、文件系统和高可用性软件体系结构。
资源目录:
第一部分 简介和tcp/ip
第1章 简介 2
1.1 概述 2
1.2 一个简单的时间获取客户程序 5
1.3 协议无关性 9
1.4 错误处理:包裹函数 10
1.5 一个简单的时间获取服务器程序 12
1.6 本书中客户/服务器程序示例索引表 14
1.7 osi模型 16
1.8 bsd网络支持历史 17
1.9 测试用网络及主机 19
1.10 unix标准 22
1.11 64位体系结构 24
1.12 小结 25
习题 25
第2章 传输层:tcp、udp和sctp 27
2.1 概述 27
2.2 总图 27
2.3 用户数据报协议(udp) 29
2.4 传输控制协议(tcp) 30
.2.5 流控制传输协议(sctp) 31
2.6 tcp连接的建立和终止 31
2.7 time_wait状态 37
2.8 sctp关联的建立和终止 38
2.9 端口号 42
2.10 tcp端口号与并发服务器 43
2.11 缓冲区大小及限制 45
2.12 标准因特网服务 50
2.13 常见因特网应用的协议使用 51
2.14 小结 52
习题 53
第二部分 基本套接字编程
第3章 套接字编程简介 56
3.1 概述 56
3.2 套接字地址结构 56
3.3 值—结果参数 61
3.4 字节排序函数 63
3.5 字节操纵函数 66
3.6 inet_aton、inet_addr和inet_ntoa函数 67
3.7 inet_pton和inet_ntop函数 68
3.8 sock_ntop和相关函数 70
3.9 readn、writen和readline函数 72
3.10 小结 76
习题 76
第4章 基本tcp套接字编程 77
4.1 概述 77
4.2 socket函数 77
4.3 connect函数 80
4.4 bind函数 81
4.5 listen函数 84
4.6 accept函数 88
4.7 fork和exec函数 90
4.8 并发服务器 91
4.9 close函数 93
4.10 getsockname和getpeername函数 94
4.11 小结 96
习题 96
第5章 tcp客户/服务器程序示例 97
5.1 概述 97
5.2 tcp回射服务器程序:main函数 97
5.3 tcp回射服务器程序:str_echo函数 98
5.4 tcp回射客户程序:main函数 99
5.5 tcp回射客户程序:str_cli函数 100
5.6 正常启动 101
5.7 正常终止 102
5.8 posix信号处理 103
5.9 处理sigchld信号 106
5.10 wait和waitpid函数 108
5.11 accept返回前连接中止 111
5.12 服务器进程终止 112
5.13 sigpipe信号 113
5.14 服务器主机崩溃 114
5.15 服务器主机崩溃后重启 115
5.16 服务器主机关机 116
5.17 tcp程序例子小结 116
5.18 数据格式 117
5.19 小结 120
习题 120
第6章 i/o复用:select和poll函数 122
6.1 概述 122
6.2 i/o模型 122
6.3 select函数 127
6.4 str_cli函数(修订版) 132
6.5 批量输入 133
6.6 shutdown函数 136
6.7 str_cli函数(再修订版) 137
6.8 tcp回射服务器程序(修订版) 138
6.9 pselect函数 142
6.10 poll函数 144
6.11 tcp回射服务器程序(再修订版) 146
6.12 小结 148
习题 149
第7章 套接字选项 150
7.1 概述 150
7.2 getsockopt和setsockopt函数 150
7.3 检查选项是否受支持并获取默认值 152
7.4 套接字状态 156
7.5 通用套接字选项 156
7.6 ipv4套接字选项 168
7.7 icmpv6套接字选项 169
7.8 ipv6套接字选项 169
7.9 tcp套接字选项 171
7.10 sctp套接字选项 173
7.11 fcntl函数 182
7.12 小结 184
习题 184
第8章 基本udp套接字编程 186
8.1 概述 186
8.2 recvfrom和sendto函数 187
8.3 udp回射服务器程序:main函数 187
8.4 udp回射服务器程序:dg_echo函数 188
8.5 udp回射客户程序:main函数 190
8.6 udp回射客户程序:dg_cli函数 190
8.7 数据报的丢失 191
8.8 验证接收到的响应 191
8.9 服务器进程未运行 193
8.10 udp程序例子小结 194
8.11 udp的connect函数 196
8.12 dg_cli函数(修订版) 199
8.13 udp缺乏流量控制 200
8.14 udp中的外出接口的确定 203