UNIX网络编程卷1.套接字联网API(第3版)

本书特色

[

本书是UNIX网络编程的经典之作。书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户 服务器程序的各种设计方法也作了完整的探讨,*后还深入分析了流这种设备驱动机制。 本书内容详尽且具权威性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。

]

内容简介

[

本书是UNIX网络编程的经典之作。书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的不错主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,很后还深入分析了流这种设备驱动机制。

本书内容详尽且具非常不错性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。

]

作者简介

[

W. 理查德·史蒂文斯(W. Richard Stevens)(1951—1999) 国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有《TCP IP详解》(三卷)、《UNIX环境高级编程》和《UNIX网络编程》(两卷),均为不朽的经典著作。 比尔·芬纳(Bill Fenner) AT&T实验室主任研究员,专攻IP多播、网络管理和测量,他是IETF路由的领域主管之一,是RFC标准文档的批准人。 安德鲁·M. 鲁道夫(Andrew M.Rudoff) Sun公司资深软件工程师,专攻网络、操作系统内核、文件系统和高可用性软件体系结构。

]

目录

目 录第 一部分 简介和TCP IP第 1章 简介 21.1 概述 21.2 一个简单的时间获取客户程序 51.3 协议无关性 91.4 错误处理:包裹函数 101.5 一个简单的时间获取服务器程序 121.6 本书中客户 服务器程序示例索引表 141.7 OSI模型 161.8 BSD网络支持历史 171.9 测试用网络及主机�� 191.10 Unix标准 221.11 64位体系结构 241.12 小结�� 25习题 25第 2章 传输层:TCP、UDP和SCTP 272.1 概述 272.2 总图 272.3 用户数据报协议(UDP) 292.4 传输控制协议(TCP) 302.5 流控制传输协议(SCTP) 312.6 TCP连接的建立和终止 312.7 TIME_WAIT状态 372.8 SCTP关联的建立和终止 382.9 端口号�� 422.10 TCP端口号与并发服务器 432.11 缓冲区大小及限制 452.12 标准因特网服务 502.13 常见因特网应用的协议使用 512.14 小结 52习题 53第二部分 基本套接字编程第3章 套接字编程简介 563.1 概述 563.2 套接字地址结构 563.3 值—结果参数 613.4 字节排序函数 633.5 字节操纵函数 663.6 inet_aton、inet_addr和inet_ntoa函数 673.7 inet_pton和inet_ntop函数 683.8 sock_ntop和相关函数 703.9 readn、writen和readline函数 723.10 小结 76习题 76第4章 基本TCP套接字编程 774.1 概述 774.2 socket函数 774.3 connect函数 804.4 bind函数 814.5 listen函数 844.6 accept函数 884.7 fork和exec函数 904.8 并发服务器 914.9 close函数 934.10 getsockname和getpeername函数 944.11 小结 96习题 96第5章 TCP客户 服务器程序示例 975.1 概述 975.2 TCP回射服务器程序:main函数 975.3 TCP回射服务器程序:str_echo函数 985.4 TCP回射客户程序:main函数 995.5 TCP回射客户程序:str_cli函数 1005.6 正常启动 1015.7 正常终止 1025.8 POSIX信号处理 1035.9 处理SIGCHLD信号 1065.10 wait和waitpid函数 1085.11 accept返回前连接中止 1115.12 服务器进程终止 1125.13 SIGPIPE信号 1135.14 服务器主机崩溃 1145.15 服务器主机崩溃后重启 1155.16 服务器主机关机 1165.17 TCP程序例子小结 1165.18 数据格式 1175.19 小结 120习题 120第6章 I O复用:select和poll函数 1226.1 概述 1226.2 I O模型 1226.3 select函数 1276.4 str_cli函数(修订版) 1326.5 批量输入 1336.6 shutdown函数 1366.7 str_cli函数(再修订版) 1376.8 TCP回射服务器程序(修订版) 1386.9 pselect函数 1426.10 poll函数 1446.11 TCP回射服务器程序(再修订版) 1466.12 小结 148习题 149第7章 套接字选项 1507.1 概述 1507.2 getsockopt和setsockopt函数 1507.3 检查选项是否受支持并获取默认值 1527.4 套接字状态 1567.5 通用套接字选项 1567.6 IPv4套接字选项 1687.7 ICMPv6套接字选项 1697.8 IPv6套接字选项 1697.9 TCP套接字选项 1717.10 SCTP套接字选项 1737.11 fcntl函数 1827.12 小结 184习题 184第8章 基本UDP套接字编程 1868.1 概述 1868.2 recvfrom和sendto函数 1878.3 UDP回射服务器程序:main函数 1878.4 UDP回射服务器程序:dg_echo函数 1888.5 UDP回射客户程序:main函数 1908.6 UDP回射客户程序:dg_cli函数 1908.7 数据报的丢失 1918.8 验证接收到的响应 1918.9 服务器进程未运行 1938.10 UDP程序例子小结 1948.11 UDP的connect函数 1968.12 dg_cli函数(修订版) 1998.13 UDP缺乏流量控制 2008.14 UDP中的外出接口的确定 2038.15 使用select函数的TCP和UDP回射服务器程序 2048.16 小结 206习题 207第9章 基本SCTP套接字编程 2089.1 概述 2089.2 接口模型 2089.3 sctp_bindx函数 2129.4 sctp_connectx函数 2139.5 sctp_getpaddrs函数 2139.6 sctp_freepaddrs函数 2139.7 sctp_getladdrs函数 2149.8 sctp_freeladdrs函数 2149.9 sctp_sendmsg函数 2149.10 sctp_recvmsg函数 2159.11 sctp_opt_info函数 2159.12 sctp_peeloff函数 2169.13 shutdown函数 2169.14 通知 2179.15 小结 221习题 222第 10章 SCTP客户 服务器程序例子 22310.1 概述 22310.2 SCTP一到多式流分回射服务器程序:main函数 22310.3 SCTP一到多式流分回射客户程序:main函数 22510.4 SCTP流分回射客户程序:sctpstr_cli函数 22610.5 探究头端阻塞 22810.6 控制流的数目 23310.7 控制终结 23310.8 小结 234习题 235第 11章 名字与地址转换 23611.1 概述 23611.2 域名系统 23611.3 gethostbyname函数 23911.4 gethostbyaddr函数 24211.5 getservbyname和getservbyport函数 24211.6 getaddrinfo函数 24511.7 gai_strerror函数 25011.8 freeaddrinfo函数 25111.9 getaddrinfo函数:IPv6 25111.10 getaddrinfo函数:例子 25311.11 host_serv函数 25411.12 tcp_connect函数 25411.13 tcp_listen函数 25711.14 udp_client函数 26111.15 udp_connect函数 26311.16 udp_server函数 26411.17 getnameinfo函数 26611.18 可重入函数 26711.19 gethostbyname_r和gethostbyaddr_r函数 27011.20 作废的IPv6地址解析函数 27111.21 其他网络相关信息 27211.22 小结 273习题 274第三部分 高级套接字编程第 12章 IPv4与IPv6的互操作性 27812.1 概述 27812.2 IPv4客户与IPv6服务器 27812.3 IPv6客户与IPv4服务器 28112.4 IPv6地址测试宏 28312.5 源代码可移植性 28412.6 小结 284习题 285第 13章 守护进程和inetd超级服务器 28613.1 概述 28613.2 syslogd守护进程 28613.3 syslog函数 28713.4 daemon_init函数 28913.5 inetd守护进程 29313.6 daemon_inetd函数 29713.7 小结 299习题 299第 14章 高级I O函数 30014.1 概述 30014.2 套接字超时 30014.3 recv和send函数 30514.4 readv和writev函数 30614.5 recvmsg和sendmsg函数 30714.6 辅助数据 31014.7 排队的数据量 31314.8 套接字和标准I O 31314.9 高级轮询技术 31614.10 T TCP:事务目的TCP 32014.11 小结 322习题 323第 15章 Unix域协议 32415.1 概述 32415.2 Unix域套接字地址结构 32415.3 socketpair函数 32615.4 套接字函数 32715.5 Unix域字节流客户 服务器程序 32715.6 Unix域数据报客户 服务器程序 32915.7 描述符传递 33015.8 接收发送者的凭证 33715.9 小结 340习题 340第 16章 非阻塞式I O 34116.1 概述 34116.2 非阻塞读和写:str_cli函数(修订版) 34216.3 非阻塞connect 35116.4 非阻塞connect:时间获取客户程序 35216.5 非阻塞connect:Web客户程序 35416.6 非阻塞accept 36216.7 小结 363习题 363第 17章 ioctl操作 36517.1 概述 36517.2 ioctl函数 36517.3 套接字操作 36617.4 文件操作 36717.5 接口配置 36717.6 get_ifi_info函数 36917.7 接口操作 37817.8 ARP高速缓存操作 37817.9 路由表操作 38017.10 小结 381习题 381第 18章 路由套接字 38218.1 概述 38218.2 数据链路套接字地址结构 38218.3 读和写 38318.4 sysctl操作 39018.5 get_ifi_info函数 39418.6 接口名字和索引函数 39718.7 小结 401习题 401第 19章 密钥管理套接字 40219.1 概述 40219.2 读和写 40319.3 倾泻安全关联数据库 40419.4 创建静态安全关联 40719.5 动态维护安全关联 41219.6 小结 415习题 416第 20章 广播 41720.1 概述 41720.2 广播地址 41820.3 单播和广播的比较 41920.4 使用广播的dg_cli函数 42220.5 竞争状态 42420.6 小结 431习题 432第 21章 多播 43321.1 概述 43321.2 多播地址 43321.3 局域网上多播和广播的比较 43621.4 广域网上的多播 43821.5 源特定多播 44021.6 多播套接字选项 44121.7 mcast_join和相关函数 44521.8 使用多播的dg_cli函数 45021.9 接收IP多播基础设施会话声明 45121.10 发送和接收 45421.11 SNTP:简单网络时间协议 45721.12 小结 461习题 461第 22章 高级UDP套接字编程 46222.1 概述 46222.2 接收标志、目的IP地址和接口索引 46222.3 数据报截断 46722.4 何时用UDP代替TCP 46722.5 给UDP应用增加可靠性 46922.6 捆绑接口地址 47822.7 并发UDP服务器 48222.8 IPv6分组信息 48322.9 IPv6路径MTU控制 48622.10 小结 487习题 488第 23章 高级SCTP套接字编程 48923.1 概述 48923.2 自动关闭的一到多式服务器程序 48923.3 部分递送 49023.4 通知 49223.5 无序的数据 49523.6 捆绑地址子集 49623.7 确定对端和本端地址信息 49723.8 给定IP地址找出关联ID 50023.9 心搏和地址不可达 50123.10 关联剥离 50223.11 定时控制 50323.12 何时改用SCTP代替TCP 50523.13 小结 506习题 506第 24章 带外数据 50724.1 概述 50724.2 TCP带外数据 50724.3 sockatmark函数 51324.4 TCP带外数据小结 51924.5 客户 服务器心搏函数 52024.6 小结 524习题 524第 25章 信号驱动式I O 52525.1 概述 52525.2 套接字的信号驱动式I O 52525.3 使用SIGIO的UDP回射服务器程序 52725.4 小结 532习题 533第 26章 线程 53426.1 概述 53426.2 基本线程函数:创建和终止 53526.3 使用线程的str_cli函数 53726.4 使用线程的TCP回射服务器程序 53826.5 线程特定数据 54226.6 Web客户与同时连接 54926.7 互斥锁 55226.8 条件变量 55526.9 Web客户与同时连接(续) 55826.10 小结 560习题 560第 27章 IP选项 56127.1 概述 56127.2 IPv4选项 56127.3 IPv4源路径选项 56227.4 IPv6扩展首部 56927.5 IPv6步跳选项和目的地选项 56927.6 IPv6路由首部 57327.7 IPv6粘附选项 57727.8 历史性IPv6高级API 57827.9 小结 579习题 579第 28章 原始套接字 58028.1 概述 58028.2 原始套接字创建 58028.3 原始套接字输出 58128.4 原始套接字输入 58228.5 ping程序 58428.6 traceroute程序 59628.7 一个ICMP消息守护程序 60828.8 小结 622习题 622第 29章 数据链路访问 62329.1 概述 62329.2 BPF:BSD分组过滤器 62329.3 DLPI:数据链路提供者接口 62529.4 Linux:SOCK_PACKET和PF_PACKET 62629.5 libpcap:分组捕获函数库 62729.6 libnet:分组构造与输出函数库 62729.7 检查UDP的校验和字段 62829.8 小结 645习题 645第30章 客户 服务器程序设计范式 64630.1 概述 64630.2 TCP客户程序设计范式 64830.3 TCP测试用客户程序 64930.4 TCP迭代服务器程序 65030.5 TCP并发服务器程序,每个客户一个子进程 65030.6 TCP预先派生子进程服务器程序,accept无上锁保护 65330.7 TCP预先派生子进程服务器程序,accept使用文件上锁保护 65930.8 TCP预先派生子进程服务器程序,accept使用线程上锁保护 66230.9 TCP预先派生子进程服务器程序,传递描述符 66330.10 TCP并发服务器程序,每个客户一个线程 66730.11 TCP预先创建线程服务器程序,每个线程各自accept 66930.12 TCP预先创建线程服务器程序,主线程统一accept 67130.13 小结 673习题 674第31章 流 67531.1 概述 67531.2 概貌 67531.3 getmsg和putmsg函数 67831.4 getpmsg和putpmsg函数 67931.5 ioctl函数 68031.6 TPI:传输提供者接口 68031.7 小结 689习题 689附录A IPv4、IPv6、ICMPv4和ICMPv6 690附录B 虚拟网络 704附录C 调试技术 708附录D 杂凑的源代码 714附录E 精选习题答案 726参考文献 756索引 763

封面

UNIX网络编程卷1.套接字联网API(第3版)

书名:UNIX网络编程卷1.套接字联网API(第3版)

作者:[美]W. 理查德·史蒂文斯(W. Ri

页数:806

定价:¥169.0

出版社:人民邮电出版社

出版日期:2018-02-01

ISBN:9787115517791

PDF电子书大小:113MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注