编辑推荐
这是一部传世之作!网络编程专家Bill Fenner和Andrew M. Rudoff应邀执笔,对W. Richard Stevens的经典作品进行修订。书中吸纳了近几年网络技术的发展,增添了IPv6、SCTP协议和密钥管理套接字等内容,深入讨论了新的关键标准、实现和技术。
书中的所有示例都是在UNIX系统上测试通过的真实的、可运行的代码,继承了Stevens一直强调的理念:“学习网络编程的好方法就是下载这些程序,对其进行修改和改进。只有这样实际编写代码才能深入理解有关概念和方法。”读者可以从本书网站下载这些示例的源代码。
本书为UNIX网络编程提供全面的指导,是网络研究和开发人员公认的参考书,无论网络编程的初学者还是网络专家都会大受裨益。
内容简介
本书是一部UNIX网络编程的经典之作。书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,还深入分析了流这种设备驱动机制。
本书内容详尽,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。
作者简介
W. Richard Stevens(1951—1999) 国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有《TCP/IP详解》(三卷)、《UNIX环境高级编程》和《UNIX网络编程》(两卷),均为不朽的经典著作。
Bill Fenner AT&T;实验室主任研究员,专攻IP多播、网络管理和测量,他是IETF路由的领域主管之一,是RFC标准文档的批准人。
Andrew M. Rudoff Sun公司软件工程师,专攻网络、操作系统内核、文件系统和高可用性软件体系结构。
目录
Part 1. Introduction and TCP/IP / 简介和TCP/IP 1
Chapter 1. Introduction / 简介 3
1.1 Introduction / 概述 3
1.2 A Simple Daytime Client / 一个简单的时间获取客户程序 6
1.3 Protocol Independence / 协议无关性 10
1.4 Error Handling: Wrapper Functions / 错误处理:包装函数 11
1.5 A Simple Daytime Server / 一个简单的时间获取服务器程序 13
1.6 Roadmap to Client/Server Examples in the Text / 本书中客户/服务器示例的路线图 16
1.7 OSI Model / OSI模型 18
1.8 BSD Networking History / BSD网络历史 20
1.9 Test Networks and Hosts / 测试用网络及主机 22
1.10 Unix Standards / Unix标准 25
1.11 64-Bit Architectures / 64位体系结构 28
1.12 Summary / 小结 29
Chapter 2. The Transport Layer: TOP, UDP, and SCTP / 传输层:TCP、UDP和SCTP 31
2.1 Introduction / 概述 31
2.2 The Big Picture / 全景图 32
2.3 User Datagram Protocol (UDP) / 用户数据报协议 34
2.4 Transmission Control Protocol (TCP) / 传输控制协议 35
2.5 Stream Control Transmission Protocol (SCTP) / 流控制传输协议 36
2.6 TCP Connection Establishment and Termination / TCP连接的建立和终止 37
2.7 TIME_WAIT State / TIME_WAIT状态 43
2.8 SCTP Association Establishment and Termination / SCTP关联的建立和终止 44
2.9 Port Numbers / 端口号 50
2.10 TCP Port Numbers and Concurrent Servers / TCP端口号与并发服务器 52
2.11 Buffer Sizes and Limitations / 缓冲区大小及限制 55
2.12 Standard Internet Services / 标准因特网服务 61
2.13 Protocol Usage by Common Internet Applications / 常见因特网应用所用的协议 62
2.14 Summary / 小结 63
Part 2. Elementary Sockets / 基本套接字 65
Chanter 3. Sockets Introduction / 套接字简介 67
3.1 Introduction / 概述 67
3.2 Socket Address Structures / 套接字地址结构 67
3.3 Value-Result Arguments / 值-结果参数 74
3.4 Byte Ordering Functions / 字节排序函数 77
3.5 Byte Manipulation Functions / 字节操纵函数 80
3.6 inet_aton, inet_addr, and inet_ntoa Functions / inet_aton、inet_addr和inet_ntoa函数 82
3.7 inet_pton and inet_ntop Functions / inet_pton和inet_ntop函数 83
3.8 sock_ntop and Related Functions / sock_ntop和相关函数 86
3.9 readn, writen, and readline Functions / readn、writen和readline函数 88
3.10 Summary / 小结 92
Chapter 4. Elementary TCP Sockets / 基本TCP套接字 95
4.1 Introduction / 概述 95
4.2 socket Function / socket函数 95
4.3 connect Function / connect函数 99
4.4 bind Function / bind函数 101
4.5 listen Function / listen函数 104
4.6 accept Function / accept函数 109
4.7 fork and exec Functions / fork和exec函数 111
4.8 Concurrent Servers / 并发服务器 114
4.9 close Function / close函数 117
4.10 getsockname and getpeername Functions / getsockname和getpeername函数 117
4.11 Summary / 小结 120
Chapter 5. TCP Client/Server Example / TCP客户/服务器示例 121
5.1 Introduction / 概述 121
5.2 TCP Echo Server: main Function / TCP回送服务器程序:main函数 122
5.3 TCP Echo Server: str_echo Function / TCP回送服务器程序:str_echo函数 123
5.4 TCP Echo Client: main Function / TCP回送客户程序:main函数 124
5.5 TCP Echo Client: str_cli Function / TCP回送客户程序:str_cli函数 125
5.6 Normal Startup / 正常启动 126
5.7 Normal Termination / 正常终止 128
5.8 POSIX Signal Handling / POSIX信号处理 129
5.9 Handling SIGCHLD Signals / 处理SIGCHLD信号 132
5.10 wait and waitpid Functions / wait和waitpid函数 135
5.11 Connection Abort before accept Returns / accept返回前连接异常中止 139
5.12 Termination of Server Process / 服务器进程的终止 141
5.13 SIGPIPE Signal / SIGPIPE信号 142
5.14 Crashing of Server Host / 服务器主机崩溃 144
5.15 Crashing and Rebooting of Server Host / 服务器主机崩溃及重启 144
5.16 Shutdown of Server Host / 服务器主机关机 145
5.17 Summary of TCP Example / TCP示例小结 146
5.18 Data Format / 数据格式 147
5.19 Summary / 小结 151
Chapter 6. I/O Multiplexing: The select and poll Functions / I/O多路复用:select和poll函数 153
6.1 Introduction / 概述 153
6.2 I/O Models / I/O模型 154
6.3 select Function / select函数 160
6.4 str_cli Function (Revisited) / 再访str_cli函数 167
6.5 Batch Input and Buffering / 批量输入和缓冲 169
6.6 shutdown Function / shutdown函数 172
6.7 str_cli Function (Revisited Again) / 三顾str_cli函数 173
6.8 TCP Echo Server (Revisited) / 再访TCP回送服务器程序 175
6.9 pselect Function / pselect函数 181
6.10 poll Function / poll函数 182
6.11 TCP Echo Server (Revisited Again) / 三顾TCP回送服务器程序 185
6.12 Summary / 小结 188
Chapter 7. Socket Options / 套接字选项? 191
7.1 Introduction / 概述 191
7.2 getsockopt and setsockopt Functions / getsockopt和setsockopt函数 192
7.3 Checking if an Option Is Supported and Obtaining the Default / 检查选项是否被支持并获取默认值 194
7.4 Socket States / 套接字状态 198
7.5 Generic Socket Options / 通用套接字选项 198
7.6 IPv4 Socket Options / IPv4套接字选项 214
7.7 ICMPv6 Socket Option / ICMPv6套接字选项 216
7.8 IPv6 Socket Options / IPv6套接字选项 216
7.9 TCP Socket Options / TCP套接字选项 219
7.10 SCTP Socket Options / SCTP套接字选项 222
7.11 fcntl Function / fcntl函数 233
7.12 Summary / 小结 236
Chapter 8. Elementary UDP Sockets / 基本UDP套接字 239
8.1 Introduction / 概述 239
8.2 recvfrom and sendto Functions / recvfrom和sendto函数 240
8.3 UDP Echo Server: main Function / UDP回送服务器程序:main函数 241
8.4 UDP Echo Server: dg_echo Function / UDP回送服务器程序:dg_echo函数 242
8.5 UDP Echo Client: main Function / UDP回送客户程序:main函数 244
8.6 UDP Echo Client: dg_cli Function / UDP回送客户程序:dg_cli函数 245
8.7 Lost Datagrams / 数据报的丢失 245
8.8 Verifying Received Response / 验证接收到的响应 246
8.9 Server Not Running / 服务器程序未运行 248
8.10 Summary of UDP Example / UDP示例小结 250
8.11 connect Function with UDP / UDP的connect函数 252
8.12 dg_cli Function (Revisited) / 再论dg_cli函数 256
8.13 Lack of Flow Control with UDP / UDP缺乏流量控制 257
8.14 Determining Outgoing Interface with UDP / UDP中的外出接口的确定 261
8.15 TCP and UDP Echo Server Using select / 使用select函数的TCP和UDP回送服务器程序 262
8.16 Summary / 小结 264
Chapter 9. Elementary SCTP Sockets / 基本SCTP套接字 267
9.1 Introduction / 概述 267
9.2 Interface Models / 接口模型 268
9.3 sctp_bindx Function / sctp_bindx函数 272
9.4 sctp_connectx Function / sctp_connectx函数 274
9.5 sctp_getpaddrs Function / sctp_getpaddrs函数 275
9.6 sctp_freepaddrs Function / sctp_freepaddrs函数 275
9.7 sctp_getladdrs Function / sctp_getladdrs函数 275
9.8 sctp_freeladdrs Function / sctp_freeladdrs函数 276
9.9 sctp_sendmsg Function / sctp_sendmsg函数 276
9.10 sctp_recvmsg Function / sctp_recvmsg函数 277
9.11 sctp_opt_info Function / sctp_opt_info函数 278
9.12 sctp_peeloff Function / sctp_peeloff函数 278
9.13 shutdown Function / shutdown函数 278
9.14 Notifications / 通知 280
9.15 Summary / 小结 286
Chapter 10. SCTP Client/Server Example / SCTP客户/服务器示例 287
10.1 Introduction / 概述 287
10.2 SCTP One-to-Many-Style Streaming Echo Server: main Function / SCTP一到多式流分回送服务器程序:main函数 288
10.3 SCTP One-to-Many-Style Streaming Echo Client: main Function / SCTP一到多式流分回送客户程序:main函数 290
10.4 SCTP Streaming Echo Client: str_cli Function / SCTP流分回送客户程序:str_cli函数 292
10.5 Exploring Head-of-Line Blocking / 探究头端阻塞 293
10.6 Controlling the Number of Streams / 控制流的数目 299
10.7 Controlling Termination / 控制终止 300
10.8 Summary / 小结 301
Chapter 11. Name and Address Conversions / 名字与地址转换 303
11.1 Introduction / 概述 303
11.2 Domain Name System (DNS) / 域名系统 303
11.3 gethostbyname Function / gethostbyname函数 307
11.4 gethostbyaddr Function / gethostbyaddr函数 310
11.5 getservbyname and getservbyport Functions / getservbyname和getservbyport函数 311
11.6 getaddrinfo Function / getaddrinfo函数 315
11.7 gai_strerror Function / gai_strerror函数 320
11.8 freeaddrinfo Function / freeaddrinfo函数 321
11.9 getaddrinfo Function: IPv6 / getaddrinfo函数:IPv6 322
11.10 getaddrinfo Function: Examples / getaddrinfo函数:示例 324
11.11 host_serv Function / host_serv函数 325
11.12 tcp_connect Function / tcp_connect函数 326
11.13 tcp_listen Function / tcp_listen函数 330
11.14 udp_client Function / udp_client函数 334
11.15 udp_connect Function / udp_connect函数 337
11.16 udp_server Function / udp_server函数 338
11.17 getnameinfo Function / getnameinfo函数 340
11.18 Re-entrant Functions / 可重入函数 341
11.19 gethostbyname_r and gethostbyaddr_r Functions / gethostbyname_r和gethostbyaddr_r函数 344
11.20 Obsolete IPv6 Add
UNIX网络编程 卷1 套接字联网API(第3版 英文版) 电子书 下载 mobi epub pdf txt