| 书名: | UNIX网络编程(卷1)-套接字联网API(D3版) | ||
| 作者: | (美)Stevens | 开本: | |
| YJ: | 129 | 页数: | |
| 现价: | 见1;CY =CY部 | 出版时间 | 2015-08 |
| 书号: | 9787115367198 | 印刷时间: | |
| 出版社: | 人民邮电出版社 | 版次: | |
| 商品类型: | 正版图书 | 印次: | |
W. Richard Stevens(1951—1999) GJ知名的UNIX和网络专家,备受赞誉的技术作家。生前著有《TCP/IP详解》(三卷)、《UNIX环境GJ编程》和《UNIX网络编程》(两卷),均为不朽的经典著作。
Bill Fenner AT&T;实验室主任研究员,专攻IP多播、网络管理和测量,他是IETF路由的领域主管之一,是RFC标准文档的批准人。
Andrew M. Rudoff Sun公司ZS软件工程师,专攻网络、操作系统内核、文件系统和高可用性软件体系结构。
精彩导读 目录 D一部分 简介和TCP/IP
D1章 简介
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 小结
习题
D2章 传输层: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 小结
习题
D二部分 基本套接字编程
D3章 套接字编程简介
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 小结
习题
D4章 基本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 小结
习题
D5章 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 小结
习题
D6章 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 小结
习题
D7章 套接字选项
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 小结
习题
D8章 基本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 小结
习题
D9章 基本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 小结
习题
D10章 SCTP客户/服务器程序例子
10.1 概述
10.2 SCTP一到多式流分回射服务器程序:main函数
10.3 SCTP一到多式流分回射客户程序:main函数
10.4 SCTP流分回射客户程序:sctpstr_cli函数
10.5 探究头端阻塞
10.6 控制流的数目
10.7 控制终结
10.8 小结
习题
D11章 名字与地址转换
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 小结
习题
D三部分 GJ套接字编程
D12章 IPv4与IPv6的互操作性
12.1 概述
12.2 IPv4客户与IPv6服务器
12.3 IPv6客户与IPv4服务器
12.4 IPv6地址测试宏
12.5 源代码可移植性
12.6 小结
习题
D13章 守护进程和inetdCJ服务器
13.1 概述
13.2 syslogd守护进程
13.3 syslog函数
13.4 daemon_init函数
13.5 inetd守护进程
13.6 daemon_inetd函数
13.7 小结
习题
D14章 GJI/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 GJ轮询技术
14.10 T/TCP:事务目的TCP
14.11 小结
习题
D15章 Unix域协议
15.1 概述
15.2 Unix域套接字地址结构
15.3 socketpair函数
15.4 套接字函数
15.5 Unix域字节流客户/服务器程序
15.6 Unix域数据报客户/服务器程序
15.7 描述符传递
15.8 接收发送者的凭证
15.9 小结
习题
D16章 非阻塞式I/O
16.1 概述
16.2 非阻塞读和写:str_cli函数(修订版)
16.3 非阻塞connect
16.4 非阻塞connect:时间获取客户程序
16.5 非阻塞connect:Web客户程序
16.6 非阻塞accept
16.7 小结
习题
D17章 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 小结
习题
D18章 路由套接字
18.1 概述
18.2 数据链路套接字地址结构
18.3 读和写
18.4 sysctl操作
18.5 get_ifi_info函数
18.6 接口名字和索引函数
18.7 小结
习题
D19章 密钥管理套接字
19.1 概述
19.2 读和写
19.3 倾泻安全关联数据库
19.4 创建静态安全关联
19.5 动态维护安全关联
19.6 小结
习题
D20章 广播
20.1 概述
20.2 广播地址
20.3 单播和广播的比较
20.4 使用广播的dg_cli函数
20.5 竞争状态
20.6 小结
习题
D21章 多播
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 小结
习题
D22章 GJUDP套接字编程
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 小结
习题
D23章 GJSCTP套接字编程
23.1 概述
23.2 自动关闭的一到多式服务器程序
……
D31章 流
附录
参考文献
索引
这本书的写作风格非常独特,它以一种非常沉浸式的方式带领读者进入到网络编程的世界。我感觉自己就像是跟着一位经验丰富的工程师在一步步构建和调试网络程序。书中对每一个API的讲解都配有大量的图示和流程图,这对于理解抽象的网络概念非常有帮助。例如,在讲解TCP服务器的并发模型时,作者详细对比了多进程、多线程以及基于事件驱动的模型,并对它们各自的优缺点进行了深入的分析,甚至还讨论了如何通过一些高级技术来进一步优化性能。我印象特别深刻的是关于域名解析和DNS的工作原理的章节,作者没有停留在仅仅调用gethostbyname()这个函数,而是详细地阐述了DNS查询的过程,包括递归查询和迭代查询,以及缓存的作用,这让我对整个互联网的通信流程有了更宏观的认识。而且,书中还涉及了许多关于网络安全的基础知识,虽然不是本书的重点,但作者也给出了重要的提醒,这对于我们编写健壮的网络程序至关重要。
评分刚拿到这本书,翻开目录就被深深吸引住了。感觉就像是进入了一个全新的领域,原本我对网络编程的理解还停留在一些很基础的协议层面,但这本书一下子把我的视野打开了。里面关于套接字API的介绍,从最基本的socket()、bind()、listen()、accept(),到connect(),每一个函数都讲解得非常透彻。不仅仅是API的调用方法,作者还深入剖析了它们在TCP和UDP协议下的具体实现机制,比如TCP的连接建立过程,三次握合四次挥手的细节,以及UDP的无连接特性带来的优势和劣势。读到关于阻塞和非阻塞I/O的部分,更是让我醍醐灌顶,原来之前很多网络程序效率不高的原因就在于此。书中的例子代码也很实用,跟着敲一遍,再稍微修改一下,就能跑出符合自己设想的网络通信程序,这种成就感是无与伦比的。特别是对epoll这种高效的I/O多路复用机制的讲解,简直是为我打开了一扇新世界的大门,感觉以后写高性能的网络服务程序有了坚实的基础。而且,作者的语言风格虽然严谨,但并不枯燥,很多地方都能感受到他对技术的热情和思考,读起来非常有启发性。
评分这本书真的是一次令人兴奋的学习体验。它不仅仅是关于API的介绍,更像是一本网络编程的“武功秘籍”,教会了我如何运用强大的力量来构建复杂的网络应用。我特别喜欢书中的一些“陷阱”和“误区”的讨论,作者会指出许多初学者容易犯的错误,并给出避免这些错误的方法,这大大节省了我试错的时间。例如,关于send()和write()的区别,以及recv()和read()的细微差别,这些细节看似微小,但在实际的并发编程中却可能引发难以预料的问题。书中对网络地址结构体的讲解也十分细致,包括IPv4和IPv6的转换,以及一些特殊的地址类型,都为我理解网络通信的地址表示提供了清晰的框架。我尤其赞赏作者对于TCP数据流和UDP数据报的区分讲解,这对于理解两种协议的不同行为模式至关重要。这本书让我明白,网络编程并非简单的函数调用,而是一门需要深入理解协议、操作系统以及并发模型才能掌握的艺术。
评分这本书的内容比我想象的要更加深入和全面。它不仅仅是关于套接字API的“怎么用”,更是关于“为什么这么用”的哲学思考。我特别欣赏作者在讲解一些复杂概念时,会引经据典,参考大量的RFC文档和实际的操作系统内核行为,这使得书中介绍的知识点都非常有说服力,并且能够触及到更底层的细节。例如,关于TCP的拥塞控制算法,以及TCP的可靠性是如何通过确认、重传和排序等机制来实现的,这些内容对我来说是全新的,也让我对网络的健壮性有了更深的理解。还有书中关于信号处理在网络编程中的应用,以及如何处理EINTR错误,这些都是在实际开发中经常会遇到的问题,但往往在初学者看来很棘手。这本书把这些难点都一一化解了,并且提供了非常清晰的解决方案。我甚至觉得,这本书不仅仅是写给程序员看的,也适合网络协议的研究者,或者任何对网络通信底层原理感兴趣的人。我曾经花了很多时间在网上搜索类似的内容,但始终没有找到像这本书这样系统、权威的讲解。
评分读这本书的过程,充满了“原来如此”的顿悟时刻。它把我曾经模糊的网络概念一一梳理清楚,并且给予了我解决实际问题的有力武器。我特别喜欢作者对于网络错误处理的讲解,书中列举了大量可能出现的错误码,并且解释了它们产生的原因以及相应的处理策略,这让我在面对复杂的网络故障时,能够更加从容地定位问题。例如,关于连接被拒绝、连接超时、文件描述符溢出等等,这些都是开发中常见的难题,但这本书都给出了非常实用的解决方案。而且,书中还涉及到了一些与网络相关的系统调用,比如ioctl(),以及如何使用select()、poll()来处理多个文件描述符,这些都极大地拓展了我的编程能力。我感觉这本书的价值远不止于套接字API本身,它更是为我打开了一扇通往更广阔的系统编程和并发编程世界的大门,让我对如何构建高效、可靠的网络服务有了全新的认识和信心。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有