描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115367198
这是一部传世之作!**网络编程专家Bill Fenner和Andrew M. Rudoff应邀执笔,对W. Richard Stevens的经典作品进行修订。书中吸纳了近几年网络技术的发展,增添了IPv6、SCTP协议和密钥管理套接字等内容,深入讨论了**的关键标准、实现和技术。
书中的所有示例都是在UNIX系统上测试通过的真实的、可运行的代码,继承了Stevens一直强调的理念:“学习网络编程的*好方法就是下载这些程序,对其进行修改和改进。只有这样实际编写代码才能深入理解有关概念和方法。”读者可以从本书网站下载这些示例的源代码。
本书为UNIX网络编程提供全面的指导,是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。
本书是一部UNIX网络编程的经典之作!书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,*后还深入分析了流这种设备驱动机制。
本书内容详尽且具权威性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。
部分 简介和TCP/IP
第1章 简介
1.1 概述
1.2 一个简单的时间获取客户程序
1.3 协议无关性
1.4 错误处理:包裹函数
1.5 一个简单的时间获取服务器程序
1.6 本书中客户/服务器程序示例索引表
1.7 OSI模型
1.8 BSD网络支持历史
1.9 测试用网络及主机
1.10 Unix标准
1.11 64位体系结构
1.12 小结
习题
第2章 传输层:TCP、UDP和SCTP
2.1 概述
2.2 总图
2.3 用户数据报协议(UDP)
2.4 传输控制协议(TCP)
2.5 流控制传输协议(SCTP)
2.6 TCP连接的建立和终止
2.7 TIME_WAIT状态
2.8 SCTP关联的建立和终止
2.9 端口号
2.10 TCP端口号与并发服务器
2.11 缓冲区大小及限制
2.12 标准因特网服务
2.13 常见因特网应用的协议使用
2.14 小结
习题
第二部分 基本套接字编程
第3章 套接字编程简介
3.1 概述
3.2 套接字地址结构
3.3 值—结果参数
3.4 字节排序函数
3.5 字节操纵函数
3.6 inet_aton、inet_addr和inet_ntoa函数
3.7 inet_pton和inet_ntop函数
3.8 sock_ntop和相关函数
3.9 readn、writen和readline函数
3.10 小结
习题
第4章 基本TCP套接字编程
4.1 概述
4.2 socket函数
4.3 connect函数
4.4 bind函数
4.5 listen函数
4.6 accept函数
4.7 fork和exec函数
4.8 并发服务器
4.9 close函数
4.10 getsockname和getpeername函数
4.11 小结
习题
第5章 TCP客户/服务器程序示例
5.1 概述
5.2 TCP回射服务器程序:main函数
5.3 TCP回射服务器程序:str_echo函数
5.4 TCP回射客户程序:main函数
5.5 TCP回射客户程序:str_cli函数
5.6 正常启动
5.7 正常终止
5.8 POSIX信号处理
5.9 处理SIGCHLD信号
5.10 wait和waitpid函数
5.11 accept返回前连接中止
5.12 服务器进程终止
5.13 SIGPIPE信号
5.14 服务器主机崩溃
5.15 服务器主机崩溃后重启
5.16 服务器主机关机
5.17 TCP程序例子小结
5.18 数据格式
5.19 小结
习题
第6章 I/O复用:select和poll函数
6.1 概述
6.2 I/O模型
6.3 select函数
6.4 str_cli函数(修订版)
6.5 批量输入
6.6 shutdown函数
6.7 str_cli函数(再修订版)
6.8 TCP回射服务器程序(修订版)
6.9 pselect函数
6.10 poll函数
6.11 TCP回射服务器程序(再修订版)
6.12 小结
习题
第7章 套接字选项
7.1 概述
7.2 getsockopt和setsockopt函数
7.3 检查选项是否受支持并获取默认值
7.4 套接字状态
7.5 通用套接字选项
7.6 IPv4套接字选项
7.7 ICMPv6套接字选项
7.8 IPv6套接字选项
7.9 TCP套接字选项
7.10 SCTP套接字选项
7.11 fcntl函数
7.12 小结
习题
第8章 基本UDP套接字编程
8.1 概述
8.2 recvfrom和sendto函数
8.3 UDP回射服务器程序:main函数
8.4 UDP回射服务器程序:dg_echo函数
8.5 UDP回射客户程序:main函数
8.6 UDP回射客户程序:dg_cli函数
8.7 数据报的丢失
8.8 验证接收到的响应
8.9 服务器进程未运行
8.10 UDP程序例子小结
8.11 UDP的connect函数
8.12 dg_cli函数(修订版)
8.13 UDP缺乏流量控制
8.14 UDP中的外出接口的确定
8.15 使用select函数的TCP和UDP回射服务器程序
8.16 小结
习题
第9章 基本SCTP套接字编程
9.1 概述
9.2 接口模型
9.3 sctp_bindx函数
9.4 sctp_connectx函数
9.5 sctp_getpaddrs函数
9.6 sctp_freepaddrs函数
9.7 sctp_getladdrs函数
9.8 sctp_freeladdrs函数
9.9 sctp_sendmsg函数
9.10 sctp_recvmsg函数
9.11 sctp_opt_info函数
9.12 sctp_peeloff函数
9.13 shutdown函数
9.14 通知
9.15 小结
习题
第10章 SCTP客户/服务器程序例子
10.1 概述
10.2 SCTP一到多式流分回射服务器程序:main函数
10.3 SCTP一到多式流分回射客户程序:main函数
10.4 SCTP流分回射客户程序:sctpstr_cli函数
10.5 探究头端阻塞
10.6 控制流的数目
10.7 控制终结
10.8 小结
习题
第11章 名字与地址转换
11.1 概述
11.2 域名系统
11.3 gethostbyname函数
11.4 gethostbyaddr函数
11.5 getservbyname和getservbyport函数
11.6 getaddrinfo函数
11.7 gai_strerror函数
11.8 freeaddrinfo函数
11.9 getaddrinfo函数:IPv6
11.10 getaddrinfo函数:例子
11.11 host_serv函数
11.12 tcp_connect函数
11.13 tcp_listen函数
11.14 udp_client函数
11.15 udp_connect函数
11.16 udp_server函数
11.17 getnameinfo函数
11.18 可重入函数
11.19 gethostbyname_r和gethostbyaddr_r函数
11.20 作废的IPv6地址解析函数
11.21 其他网络相关信息
11.22 小结
习题
第三部分 高级套接字编程
第12章 IPv4与IPv6的互操作性
12.1 概述
12.2 IPv4客户与IPv6服务器
12.3 IPv6客户与IPv4服务器
12.4 IPv6地址测试宏
12.5 源代码可移植性
12.6 小结
习题
第13章 守护进程和inetd超级服务器
13.1 概述
13.2 syslogd守护进程
13.3 syslog函数
13.4 daemon_init函数
13.5 inetd守护进程
13.6 daemon_inetd函数
13.7 小结
习题
第14章 高级I/O函数
14.1 概述
14.2 套接字超时
14.3 recv和send函数
14.4 readv和writev函数
14.5 recvmsg和sendmsg函数
14.6 辅助数据
14.7 排队的数据量
14.8 套接字和标准I/O
14.9 高级轮询技术
14.10 T/TCP:事务目的TCP
14.11 小结
习题
第15章 Unix域协议
15.1 概述
15.2 Unix域套接字地址结构
15.3 socketpair函数
15.4 套接字函数
15.5 Unix域字节流客户/服务器程序
15.6 Unix域数据报客户/服务器程序
15.7 描述符传递
15.8 接收发送者的凭证
15.9 小结
习题
第16章 非阻塞式I/O
16.1 概述
16.2 非阻塞读和写:str_cli函数(修订版)
16.3 非阻塞connect
16.4 非阻塞connect:时间获取客户程序
16.5 非阻塞connect:Web客户程序
16.6 非阻塞accept
16.7 小结
习题
第17章 ioctl操作
17.1 概述
17.2 ioctl函数
17.3 套接字操作
17.4 文件操作
17.5 接口配置
17.6 get_ifi_info函数
17.7 接口操作
17.8 ARP高速缓存操作
17.9 路由表操作
17.10 小结
习题
第18章 路由套接字
18.1 概述
18.2 数据链路套接字地址结构
18.3 读和写
18.4 sysctl操作
18.5 get_ifi_info函数
18.6 接口名字和索引函数
18.7 小结
习题
第19章 密钥管理套接字
19.1 概述
19.2 读和写
19.3 倾泻安全关联数据库
19.4 创建静态安全关联
19.5 动态维护安全关联
19.6 小结
习题
第20章 广播
20.1 概述
20.2 广播地址
20.3 单播和广播的比较
20.4 使用广播的dg_cli函数
20.5 竞争状态
20.6 小结
习题
第21章 多播
21.1 概述
21.2 多播地址
21.3 局域网上多播和广播的比较
21.4 广域网上的多播
21.5 源特定多播
21.6 多播套接字选项
21.7 mcast_join和相关函数
21.8 使用多播的dg_cli函数
21.9 接收IP多播基础设施会话声明
21.10 发送和接收
21.11 SNTP:简单网络时间协议
21.12 小结
习题
第22章 高级UDP套接字编程
22.1 概述
22.2 接收标志、目的IP地址和接口索引
22.3 数据报截断
22.4 何时用UDP代替TCP
22.5 给UDP应用增加可靠性
22.6 捆绑接口地址
22.7 并发UDP服务器
22.8 IPv6分组信息
22.9 IPv6路径MTU控制
22.10 小结
习题
第23章 高级SCTP套接字编程
23.1 概述
23.2 自动关闭的一到多式服务器程序
……
第31章 流
附录
参考文献
索引
“所有人都非常期待这本书,因为它完美地结合了实践经验、历史视角以及在本领域浸淫多年才能获得的透彻理解。阅读本书是一种享受,我收获颇丰。相信大家一定会有同感。”
——Sam Leffler
“这只是网络编程的参考书。25年来我一直依赖它。这本书描述简洁、详细、精确,而且示例代码对于启动任何网络项目都依然有生命力。走过硅谷的任何工程办公室,你都会发现至少有一本这本书在书架上。Stevens是网络编程领域的Knuth(高德纳)。”
——Richard L Davis Jr
“没什么可说的,这是一本经典著作!任何渴望深入理解C语言网络编程的人都不能没有这本书。”
——Blue Chip “MAC”
“这部著作在计算机科学领域里的传奇得以延续,Bill Fenner和Andrew Rudoff居功至伟。”
——Art Sedighi
“这套书是学习网络编程*好的书。全世界**好的,远超群伦。”
——S. Devasundaram
“这本书不会让你一夜之间成为专家,但它终究会让你成为专家。”
——John Nguyen
霁月星辰 –
UNIX经典巨著之一,~~UNXI软件开发者不能不读呀
白金圣斗士 –
经典就是经典,经久不衰。看了几页,感觉翻译的还是有些问题,但也没办法,自己英语太烂,读不了英文原版。