UNIX网络编程:第2版(第1卷 套接口API和X/Open传输接口API)

UNIX网络编程:第2版(第1卷 套接口API和X/Open传输接口API)
作 者: 史蒂文斯 施振川
出版社: 清华大学出版社
丛编项: 北京科海培训中心图书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: UNIX
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  作者:W.RichardStevens国际知名的Unix和网络专家,《TCP/IP详解》(三卷本)作者W.RichardStevens(1951-1999),是国际知名的Unix和网络专家;受人尊敬的计算机图书作家;同时他还是广受欢迎的教师和顾问。Stevens先生1951年生于赞比亚,他的家庭曾多次搬迁,最终定居于南非。早年,他就读于美国弗吉尼亚州的费什本军事学校,后获得密歇根大学学士、亚利桑那大学系统工程硕士和博士学位。他曾就职于基特峰国家天文台,从事计算机编程;还曾在康涅狄格州纽黑文市的健康系统国际公司任主管计算机服务的副总裁。Stevens先生不幸病逝于1999年9月1日,他的离去是计算机界的巨大损失。UNIX环境高级编程(第2版)>>更多作品

内容简介

内容提要本书全面深入地讲述了套接口API网络编程的既成事实标准,对X/Open传输接口API也作了广泛的介绍。本书从对套接口API的综合讨论开始,论述了基本编程内容后,即转入高级套接口编程的相关主题,包括IPv4与IPv6的互操作性、UNIX域协议、非阻塞I/O、路由套接口、广播、多播、线程、原始套接口、数据链路访问等,对于客户—服务器程序的各种设计方法也作了完整的探讨。在叙述X/Open传输接口API时,还对流这种设备驱动机制作了深入分析。在附录中又给出了IPv6、ICMPv6、虚拟网络等新内容。本书内容详尽且具权威性,几乎每章都提供精选的习题,是计算机和网络专业高年级本科生和研究生的首选教材。本书也可作为网络研究和开发人员的自学教材和参考书。

图书目录

目录

前言

第1部分 简介和TCP/IP

第1章 简介

1.1概述

1.2一个简单的时间/日期客户程序

1.3协议无关性

1.4错误处理:包裹函数

1.5一个简单的时间/日期服务器程序

1.6书中客户-服务器程序例子索引表

1.7OSI模型

1.8BSD网络支持历史

1.9测试用网络及主机

1.10Unix标准

1.1164位体系结构

1.12小结

1.13习题

第2章 传输层:TCP和UDP

2.1概述

2.2总图

2.3UDP:用户数据报协议

2.4TCP:传输控制协议

2.5TCP连接的建立和终止

2.6TIME-WAIT状态

2.7端口号

2.8TCP端口号与并发服务器

2.9缓冲区大小及限制

2.10标准因特网服务

2.11常见因特网应用程序的协议使用

2.12小结

2.13习题

第2部分 基本套接口编程

第3章 套接口编程简介

3.1概述

3.2套接口地址结构

3.3值结果参数

3.4字节排序函数

3.5字节操纵函数

3.6inet-aton、inet-addr和inet-ntoa函数

3.7inet-pton和inet-ntop函数

3.8sock-ntop和相关函数

3.9readn、writen和readline函数

3.10isfdtype函数

3.11小结

3.12习题

第4章 基本TCP套接口编程

4.1概述

4.2socket函数

4.3connect函数

4.4bind函数

4.5listen函数

4.6accept函数

4.7fork和exec函数

4.8并发服务器

4.9close函数

4.10getsockname和getpeername函数

4.11小结

4.12习题

第5章 TCP客户-服务器程序例子

5.1概述

5.2TCP回射服务器程序:main函数

5.3TCP回射服务器程序:str-echo函数

5.4TCP回射客户程序:main函数

5.5TCP回射客户程序:str-cli函数

5.6正常启动

5.7正常终止

5.8Posix信号处理

5.9处理SIGCHLD信号

5.10wait和waitpid函数

5.11accept返回前连接天折

5.12服务器进程终止

5.13SIGPIPE信号

5.14服务器主机崩溃

5.15服务器主机崩溃后重启

5.16服务器主机关机

5.17TCP程序例子小结

5.18数据格式

5.19小结

5.20习题

第6章 I/O复用:select和poll函数

6.1概述

6.2I/O模型

6.3select函数

6.4str-cli函数(修订版)

6.5批量输入

6.6shutdown函数

6.7str-cli函数(再修订版)

6.8TCP回射服务器程序(修订版)

6.9pselect函数

6.10poll函数

6.11TCP回射服务器程序(再修订版)

6.12小结

6.13习题

第7章 套接口选项

7.1概述

7.2getsockopt和setsockopt函数

7.3检查选项是否受支持并获取缺省值

7.4套接口状态

7.5基本套接口选项

7.6IPv4套接口选项

7.7ICMPv6套接口选项

7.8IPv6套接口选项

7.9TCP套接口选项

7.10fcntl函数

7.11小结

7.12习题

第8章 基本UDP套接口编程

8.1概述

8.2recvfrom和sendto函数

8.3UDP回射服务器程序:main函数

8.4UDP回射服务器程序:dg-echo函数

8.5UDP回射客户程序:main函数

8.6UDP回射客户程序:dg-cli函数

8.7数据报的丢失

8.8验证接收到的响应

8.9服务器进程未运行

8.10UDP程序例子小结

8.11UDP的connect函数

8.12dg-cli函数(修订版)

8.13UDP缺乏流量控制

8.14UDP中外出接口的确定

8.15使用select函数的TCP和UDP回射服务器程序

8.16小结

8.17习题

第9章 基本名字与地址转换

9.1概述

9.2域名系统

9.3gethostbyname函数

9.4RES-USE-INET6解析器选项

9.5gethostbyname2函数与IPv6支持

9.6gethostbyaddr函数

9.7uname函数

9.8gethostname函数

9.9getservbyname和getservbyport函数

9.10其他网络相关信息

9.11小结

9.12习题

第3部分 高级套接口编程

第10章 IPv4和IPv6的互操作性

10.1概述

10.2IPv4客户与IPv6服务器

10.3IPv6客户与IPv4服务器

10.4IPv6地址测试宏

10.5IPV6-ADDRFORM套接口选项

10.6源代码可移植性

10.7小结

10.8习题

第11章 高级名字与地址转

11.1概述

11.2getaddrinfo函数

11.3gai-strerror函数

11.4freeaddrinfo函数

11.5getaddrinfo函数:IPv6和UNIX域

11.6getaddrinfo函数:例子

11.7host-serv函数

11.8tcp-connect函数

11.9tcplisten函数

11.10udpclient函数

11.11udpconnect函数

11.12udp-server函数

11.13getnameinfo函数

11.14可重入函数

11.15gethostbynamer和gethostbyaddrr函数

11.16getaddrinfo和getnameinfo函数的实现

11.17小结

11.18习题

第12章 守护进程和inetd超级服务器

12.1概述

12.2syslogd守护进程

12.3syslog函数

12.4daemon-init函数

12.5inetd守护进程

12.6daemoninetd函数

12.7小结

12.8习题

第13章 高级I/O函数

13.1概述

13.2套接口超时

13.3recv和send函数

13.4readv和writev函数

13.5recvmsg和sendmsg函数

13.6辅助数据

13.7排队的数据量

13.8套接口与标准I/O

13.9T/TCP:事务TCP

13.10小结

13.11习题

第14章 Unix域协议

14.1概述

14.2Unix域套接口地址结构

14.3socketpair函数

14.4套接口函数

14.5Unix域字节流客户服务器程序

14.6Unix域数据报客户服务器程序

14.7描述字传递

14.8接收发送者的凭证

14.9小结

14.10习题

第15章 非阻塞I/O

15.1概述

15.2非阻塞读和写:str-cli函数(修订版)

15.3非阻塞connect

15.4非阻塞connect:日期/时间客户程序

15.5非阻塞connect:Web客户程序

15.6非阻塞accept

15.7小结

15.8习题

第16章 ioctl 操作

16.1概述

16.2ioctl函数

16.3套接口操作

16.4文件操作

16.5接口配置

16.6get-ifi-info函数

16.7接口操作

16.8ARP高速缓存操作

16.9路由表操作

16.10小结

16.11习题

第17章 路由套接口

17.1概述

17.2数据链路套接口地址结构

17.3读和写

17.4sysctl操作

17.5get-ifi-info函数·

17.6接口名和索引函数

17.7小结

17.8习题

第18章 广播

18.1概述

18.2广播地址

18.3单播和广播的比较

18.4使用广播的dgcli函数

18.5竞争状态

18.6小结

18.7习题

第19章 多播

19.1概述

19.2多播地址

19.3局域网上多播和广播的比较

19.4广域网上的多播

19.5多播套接口选项

19.6mcast-join和相关函数

19.7使用多播的dg-cli函数

19.8接收MBone会话声明

19.9发送和接收

19.10SNTP:简单网络时间协议

19.11SNTP(续)

19.12小结

19.13习题

第20章 高级UDP套接口编程

20.1概述

20.2接收标志、目的IP地址和接口索引

20.3数据报截断

20.4何时使用UDP而不是TCP

20.5给UDP应用程序增加可靠性

20.6捆绑接口地址

20.7并发UDP服务器

20.81Pv6分组信息

20.9小结

20.10习题

第21章 带外数据

21.1概述

21.2TCP带外数据

21.3sockatmark函数

21.4TCP带外数据小结

21.5客户-服务器心博函数

21.6小结

21.7习题

第22章 信号驱动I/O

22.1概述

22.2套接口上的信号驱动I/O

22.3使用SIGIO的UDP回射服务器程序

22.4小结

22.5习题

第23章 线程

23.1概述

23.2基本线程函数:创建和终止

23.3使用线程的str-cli函数

23.4使用线程的TCP回射服务器程序

23.5线程特定数据

23.6Web客户与同时连接

23.7互斥锁

23.8条件变量

23.9Web客户与同时连接(续)

23.10小结

23.11习题

第24章IP选项

24.1概述

24.2IPv4选项

24.3IP源路径选项

24.4IPv6扩展头部

24.5IPv6步跳选项和目的选项

24.6IPv6路由头部

24.7IPv6粘附选项

24.8小结

24.9习题

第25章 原始套接口

25.1概述

25.2原始套接口创建

25.3原始套接口输出

25.4原始套接口输入

25.5Ping程序

25.6Traceroute程序

25.7一个ICMP消息守护进程

25.8小结

25.9习题

第26章 数据链路访问

26.1概述

26.2BPF:BSD分组过滤器

26.3DLPI:数据链路提供者接口

26.4Linux:SOCK—PACKET

26.5libpcap:分组捕获函数库

26.6检查UDP的校验和字段

26.7小结

26.8习题

第27章 客户-服务器程序其他设计方法

27.1概述

27.2TCP客户程序其他设计方法

27.3TCP测试用客户程序

27.4TCP迭代服务器程序

27.5TCP并发服务器程序,每个客户一个子进程

27.6TCP预先派生子进程服务器程序,accept无上锁保护

27.7TCP预先派生子进程服务器程序,accept使用文件锁保护

27.8TCP预先派生子进程服务器程序,accept使用线程互斥锁保护

27.9TCP预先派生子进程服务器程序,传递描述字

27.10TCP并发服务器程序,每个客户一个线程

27.11TCP预先创建线程服务器程序,每个线程各自accept

27.12TCP预先创建线程服务器程序,主线程统一accept

27.13小结

27.14习题

第4部分 XTI:X/Open传输接 口编程

第28章 XTI:TCP客户程序

28.1概述

28.2t-open函数

28.3t-error和tstrerror函数

28.4netbuf结构和XTI结构

28.5tbind函数

28.6t-connect函数

28.7t-rcv和t-snd函数

28.8t-1ook函数

28.9t-sndrel和t-rcvrel函数

28.10t-snddis和t-rcvdis函数

28.11XTITCP时间/日期客户程序

28.12xti-rdwr函数

28.13小结

28.14习题

第29章 XTI:名字与地址函数

29.1概述

29.2/etc/netconfig文件与netconfig函数

29.3NETPATH环境变量与netpath函数

29.4netdir函数

29.5t-a1loc和t—free函数

29.6t-getprotaddr函数

29.7xtintop函数

29.8tcp-connect函数

29.9小结

29.10习题

第30章 XTI:TCP服务器程序

30.1概述

30.2tlisten函数

30.3tcplisten函数

30.4t—accept函数

30.5xti-accept函数

30.6简单的时间/日期服务器程序

30.7多个待处理连接

30.8xti-accept函数(修订版)

30.9小结

30.10习题

第31章 XTI:UDP客户和服务器程序

31.1概述

31.2trcvudata和t-sndudata函数

31.3udpclient函数

31.4t-rcvuderr函数:异步错误

31.5udpserver函数

31.6分片读取数据报

31.7小结

第32章 XTI选项

32.1概述

32.2t-opthdr结构

32.3XTI选项

32.4t-optmgmt函数

32.5检查选项是否受支持并获取缺省值

32.6获取和设置XTI选项

32.7小结

第33章 流

33.1概述

33.2概貌

33.3getmsg和putmsg函数

33.4getpmsg和putpmsg函数

33.5ioct1函数

33.6TPI:传输提供者接口

33.7小结

33.8习题

第34章 XTI:其他函数

34.1概述

34.2非阻塞I/O

34.3trcveonnect函数

34.4tgetinfo函数

34.5tgetstate函数

34.6tsync函数

34.7t-unbind函数

34.8t-rcvv和t-rcvvudata函数

34.9tsndv和t-sndvudata函数

34.10t-rcvreldata和t-sndreldata函数

34.11信号驱动I/O

34.12带外数据

34.13回馈传输提供者

34.14小结

第5部分

附录

附录AIPv4、IPv6、ICMPv4和ICMPv6

A.1概述

A.21Pv4头部

A.3IPv6头部

A.4IPv4地址

A.5IPv6地址

A.6ICMPv4和ICMPv6:网际控制消息协议

附录B虚拟网络

B.1概述

B.2MBone

B.36bone

附录C调试技术

C.1系统调用跟踪

C.2标准因特网服务

C.3sock程序

C.4小测试程序

C.5tcpdump程序

C.6netstat程序

C.7lsof程序

附录D杂凑的源代码

D.1unp.h头文件

D.2config.h头文件

D.3unpxti.h头文件

D.4标准错误处理函数

附录E部分习题解答

附录F参考文献

附录G函数和宏定义索引表

附录H结构定义索引表

附录Ⅱ中英文对照词汇表