UNIX网络编程:卷1+卷2(套装共2册)
《UNIX网络编程(卷1):套接字联网API(第3版)》
第一部分 简介和TCP/IP
第1章 简介
1.1 概述
1.2 一个简单的时间获取客户程序
1.3 协议无关性
1.4 错误处理:包裹函数
1.5 一个简单的时间获取服务器程序
1.6 本书中客户/服务器程序示例索引表
1.7 OSI模型
查看完整
第一部分 简介和TCP/IP
第1章 简介
1.1 概述
1.2 一个简单的时间获取客户程序
1.3 协议无关性
1.4 错误处理:包裹函数
1.5 一个简单的时间获取服务器程序
1.6 本书中客户/服务器程序示例索引表
1.7 OSI模型
查看完整
W.Richard Stevens,国际知名的UNIX和网络专家,备受赞誉的技术作家他1951年2月5日出生于赞比亚,后随父母回到美国中学时就读于弗吉尼亚菲什伯恩军事学校,1973年获得密歇根大学航空和航天工程学士学位,1975年至1982年,他在亚利桑那州图森市的基特峰国家天文台从事计算机编程工作,业余时间喜爱飞行运动,做过兼职飞行教练这期间他分别在1978年和1982年获得亚利桑那大学系统工程硕士和博士学位此后他去康涅狄格州纽黑文的健康系统国际公司任主管计算机服务的副总裁,1990年他回到图森,从事专业技术写作和咨询工作写下了多种经典的传世之作。
《UNIX网络编程(卷1):套接字联网API(第3版)》:
是一部UNIX网络编程的经典之作!书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,最后还深入分析了流这种设备驱动机制。
内容详尽,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。
《UNIX网络编程(卷2):进程间通信(第2版)》:
是一部UNIX网络编程的经典之作!进程间通信(IPC)几乎是所有Unix程序性能的关键,理解IPC也是理解如何开发不同主机间网络应用程序的必要条件。《UNIX网络编程.卷2:进程间通信(第2版)》从对Posix IPC和System V IPC的…
查看完整
是一部UNIX网络编程的经典之作!书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,最后还深入分析了流这种设备驱动机制。
内容详尽,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。
《UNIX网络编程(卷2):进程间通信(第2版)》:
是一部UNIX网络编程的经典之作!进程间通信(IPC)几乎是所有Unix程序性能的关键,理解IPC也是理解如何开发不同主机间网络应用程序的必要条件。《UNIX网络编程.卷2:进程间通信(第2版)》从对Posix IPC和System V IPC的…
查看完整
《UNIX网络编程(卷1):套接字联网API(第3版)》
第一部分 简介和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 自动关闭的一到多式服务器程序
23.3 部分递送
23.4 通知
23.5 无序的数据
23.6 捆绑地址子集
23.7 确定对端和本端地址信息
23.8 给定IP地址找出关联ID
23.9 心搏和地址不可达
23.10 关联剥离
23.11 定时控制
23.12 何时改用SCTP代替TCP
23.13 小结
习题
第24章 带外数据
24.1 概述
24.2 TCP带外数据
24.3 sockatmark函数
24.4 TCP带外数据小结
24.5 客户/服务器心搏函数
24.6 小结
习题
第25章 信号驱动式I/O
25.1 概述
25.2 套接字的信号驱动式I/O
25.3 使用SIGIO的UDP回射服务器程序
25.4 小结
习题
第26章 线程
26.1 概述
26.2 基本线程函数:创建和终止
26.3 使用线程的str_cli函数
26.4 使用线程的TCP回射服务器程序
26.5 线程特定数据
26.6 Web客户与同时连接
26.7 互斥锁
26.8 条件变量
26.9 Web客户与同时连接(续)
26.10 小结
习题
第27章 IP选项
27.1 概述
27.2 IPv4选项
27.3 IPv4源路径选项
27.4 IPv6扩展首部
27.5 IPv6步跳选项和目的地选项
27.6 IPv6路由首部
27.7 IPv6粘附选项
27.8 历史性IPv6高级API
27.9 小结
习题
第28章 原始套接字
28.1 概述
28.2 原始套接字创建
28.3 原始套接字输出
28.4 原始套接字输入
28.5 ping程序
28.6 traceroute程序
28.7 一个ICMP消息守护程序
28.8 小结
习题
第29章 数据链路访问
29.1 概述
29.2 BPF:BSD分组过滤器
29.3 DLPI:数据链路提供者接口
29.4 Linux:SOCK_PACKET和 PFPACKET
29.5 libpcap:分组捕获函数库
29.6 libnet:分组构造与输出函数库
29.7 检查UDP的校验和字段
29.8 小结
习题
第30章 客户/服务器程序设计范式
30.1 概述
30.2 TCP客户程序设计范式
30.3 TCP测试用客户程序
30.4 TCP迭代服务器程序
30.5 TCP并发服务器程序,每个客户一个子进程
30.6 TCP预先派生子进程服务器程序,accept无上锁保护
30.7 TCP预先派生子进程服务器程序,accept使用文件上锁保护
30.8 TCP预先派生子进程服务器程序,accept使用线程上锁保护
30.9 TCP预先派生子进程服务器程序,传递描述符
30.10 TCP并发服务器程序,每个客户一个线程
30.11 TCP预先创建线程服务器程序,每个线程各自accept
30.12 TCP预先创建线程服务器程序,主线程统一accept
30.13 小结
习题
第31章 流
31.1 概述
31.2 概貌
31.3 getmsg和putmsg函数
31.4 getpmsg和putpmsg函数
31.5 ioctl函数
31.6 TPI:传输提供者接口
31.7 小结
习题
附录A IPv4、IPv6、ICMPv4和ICMPv6
附录B 虚拟网络
附录C 调试技术
附录D 杂凑的源代码
附录E 精选习题答案
参考文献
索引
《UNIX网络编程(卷2):进程间通信(第2版)》
第一部分 简介
第1章 简介
1.1 概述
1.2 进程、线程与信息共享
1.3 IPC对象的持续性
1.4 名字空间
1.5 fork、exec和exit对IPC对象的影响
1.6 出错处理:包裹函数
1.7 Unix标准
1.8 书中IPC例子索引表
1.9 小结
习题
第2章 Posix IPC
2.1 概述
2.2 IPC名字
2.3 创建与打开IPC通道
2.4 IPC权限
2.5 小结
习题
第3章 System V IPC
3.1 概述
3.2 key_t键和ftok函数
3.3 ipc_perm结构
3.4 创建与打开IPC通道
3.5 IPC权限
3.6 标识符重用
3.7 ipcs和ipcrm程序
3.8 内核限制
3.9 小结
习题
第二部分 消息传递
第4章 管道和FIFO
4.1 概述
4.2 一个简单的客户-服务器例子
4.3 管道
4.4 全双工管道
4.5 popen和pclose函数
4.6 FIFO
4.7 管道和FIFO的额外属性
4.8 单个服务器,多个客户
4.9 对比迭代服务器与并发服务器
4.10 字节流与消息
4.11 管道和FIFO限制
4.12 小结
习题
第5章 Posix消息队列
5.1 概述
5.2 mq_open、mq_close和mq_unlink函数
5.3 mq_getattr和mq_setattr函数
5.4 mq_send和mq_receive函数
5.5 消息队列限制
5.6 mq_notify函数
5.7 Posix实时信号
5.8 使用内存映射I/O实现Posix消息队列
5.9 小结
习题
第6章 System V消息队列
6.1 概述
6.2 msgget函数
6.3 msgsnd函数
6.4 msgrcv函数
6.5 msgctl函数
6.6 简单的程序
6.7 客户-服务器例子
6.8 复用消息
6.9 消息队列上使用select和poll
6.10 消息队列限制
6.11 小结
习题
第三部分 同步
第7章 互斥锁和条件变量
7.1 概述
7.2 互斥锁:上锁与解锁
7.3 生产者-消费者问题
7.4 对比上锁与等待
7.5 条件变量:等待与信号发送
7.6 条件变量:定时等待和广播
7.7 互斥锁和条件变量的属性
7.8 小结
习题
第8章 读写锁
8.1 概述
8.2 获取与释放读写锁
8.3 读写锁属性
8.4 使用互斥锁和条件变量实现读写锁
8.5 线程取消
8.6 小结
习题
第9章 记录上锁
9.1 概述
9.2 对比记录上锁与文件上锁
9.3 Posix fcntl记录上锁
9.4 劝告性上锁
9.5 强制性上锁
9.6 读出者和写入者的优先级
9.7 启动一个守护进程的唯一副本
9.8 文件作锁用
9.9 NFS上锁
9.10 小结
习题
第10章 Posix信号量
10.1 概述
10.2 sem_open、sem_close和sem_unlink函数
10.3 sem_wait和sem_trywait函数
10.4 sem_post和sem_getvalue函数
10.5 简单的程序
10.6 生产者-消费者问题
10.7 文件上锁
10.8 sem_init和sem_destroy函数
10.9 多个生产者,单个消费者
10.10 多个生产者,多个消费者
10.11 多个缓冲区
10.12 进程间共享信号量
10.13 信号量限制
10.14 使用FIFO实现信号量
10.15 使用内存映射I/O实现信号量
10.16 使用System V信号量实现Posix信号量
10.17 小结
习题
第11章 System V信号量
11.1 概述
11.2 semget函数
11.3 semop函数
11.4 semctl函数
11.5 简单的程序
11.6 文件上锁
11.7 信号量限制
11.8 小结
习题
第四部分 共享内存区
第12章 共享内存区介绍
12.1 概述
12.2 mmap、munmap和msync函数
12.3 在内存映射文件中给计数器持续加
12.4 .4BSD匿名内存映射
12.5 SVR4/dev/zero内存映射
12.6 访问内存映射的对象
12.7 小结
习题
第13章 Posix共享内存区
13.1 概述
13.2 shm_open和shm_unlink函数
13.3 ftruncate和fstat函数
13.4 简单的程序
13.5 给一个共享的计数器持续加
13.6 向一个服务器发送消息
13.7 小结
习题
第14章 System V共享内存区
14.1 概述
14.2 shmget函数
14.3 shmat函数
14.4 shmdt函数
14.5 shmctl函数
14.6 简单的程序
14.7 共享内存区限制
14.8 小结
习题
第五部分 远程过程调用
第15章 门
15.1 概述
15.2 door_call函数
15.3 door_create函数
15.4 door_return函数
15.5 door_cred函数
15.6 door_info函数
15.7 例子
15.8 描述符传递
15.9 door_sever_create函数
15.10 door_bind、door_unbind和door_revoke函数
15.11 客户或服务器的过早终止
15.12 小结
习题
第16章 Sun RPC
16.1 概述
16.2 多线程化
16.3 服务器捆绑
16.4 认证
16.5 超时和重传
16.6 调用语义
16.7 客户或服务器的过早终止
16.8 XDR:外部数据表示
16.9 RPC分组格式
16.10 小结
习题
后记
附录A 性能测量
附录B 线程入门
附录C 杂凑的源代码
附录D 精选习题解答
参考文献
索引
^ 收 起
第一部分 简介和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 自动关闭的一到多式服务器程序
23.3 部分递送
23.4 通知
23.5 无序的数据
23.6 捆绑地址子集
23.7 确定对端和本端地址信息
23.8 给定IP地址找出关联ID
23.9 心搏和地址不可达
23.10 关联剥离
23.11 定时控制
23.12 何时改用SCTP代替TCP
23.13 小结
习题
第24章 带外数据
24.1 概述
24.2 TCP带外数据
24.3 sockatmark函数
24.4 TCP带外数据小结
24.5 客户/服务器心搏函数
24.6 小结
习题
第25章 信号驱动式I/O
25.1 概述
25.2 套接字的信号驱动式I/O
25.3 使用SIGIO的UDP回射服务器程序
25.4 小结
习题
第26章 线程
26.1 概述
26.2 基本线程函数:创建和终止
26.3 使用线程的str_cli函数
26.4 使用线程的TCP回射服务器程序
26.5 线程特定数据
26.6 Web客户与同时连接
26.7 互斥锁
26.8 条件变量
26.9 Web客户与同时连接(续)
26.10 小结
习题
第27章 IP选项
27.1 概述
27.2 IPv4选项
27.3 IPv4源路径选项
27.4 IPv6扩展首部
27.5 IPv6步跳选项和目的地选项
27.6 IPv6路由首部
27.7 IPv6粘附选项
27.8 历史性IPv6高级API
27.9 小结
习题
第28章 原始套接字
28.1 概述
28.2 原始套接字创建
28.3 原始套接字输出
28.4 原始套接字输入
28.5 ping程序
28.6 traceroute程序
28.7 一个ICMP消息守护程序
28.8 小结
习题
第29章 数据链路访问
29.1 概述
29.2 BPF:BSD分组过滤器
29.3 DLPI:数据链路提供者接口
29.4 Linux:SOCK_PACKET和 PFPACKET
29.5 libpcap:分组捕获函数库
29.6 libnet:分组构造与输出函数库
29.7 检查UDP的校验和字段
29.8 小结
习题
第30章 客户/服务器程序设计范式
30.1 概述
30.2 TCP客户程序设计范式
30.3 TCP测试用客户程序
30.4 TCP迭代服务器程序
30.5 TCP并发服务器程序,每个客户一个子进程
30.6 TCP预先派生子进程服务器程序,accept无上锁保护
30.7 TCP预先派生子进程服务器程序,accept使用文件上锁保护
30.8 TCP预先派生子进程服务器程序,accept使用线程上锁保护
30.9 TCP预先派生子进程服务器程序,传递描述符
30.10 TCP并发服务器程序,每个客户一个线程
30.11 TCP预先创建线程服务器程序,每个线程各自accept
30.12 TCP预先创建线程服务器程序,主线程统一accept
30.13 小结
习题
第31章 流
31.1 概述
31.2 概貌
31.3 getmsg和putmsg函数
31.4 getpmsg和putpmsg函数
31.5 ioctl函数
31.6 TPI:传输提供者接口
31.7 小结
习题
附录A IPv4、IPv6、ICMPv4和ICMPv6
附录B 虚拟网络
附录C 调试技术
附录D 杂凑的源代码
附录E 精选习题答案
参考文献
索引
《UNIX网络编程(卷2):进程间通信(第2版)》
第一部分 简介
第1章 简介
1.1 概述
1.2 进程、线程与信息共享
1.3 IPC对象的持续性
1.4 名字空间
1.5 fork、exec和exit对IPC对象的影响
1.6 出错处理:包裹函数
1.7 Unix标准
1.8 书中IPC例子索引表
1.9 小结
习题
第2章 Posix IPC
2.1 概述
2.2 IPC名字
2.3 创建与打开IPC通道
2.4 IPC权限
2.5 小结
习题
第3章 System V IPC
3.1 概述
3.2 key_t键和ftok函数
3.3 ipc_perm结构
3.4 创建与打开IPC通道
3.5 IPC权限
3.6 标识符重用
3.7 ipcs和ipcrm程序
3.8 内核限制
3.9 小结
习题
第二部分 消息传递
第4章 管道和FIFO
4.1 概述
4.2 一个简单的客户-服务器例子
4.3 管道
4.4 全双工管道
4.5 popen和pclose函数
4.6 FIFO
4.7 管道和FIFO的额外属性
4.8 单个服务器,多个客户
4.9 对比迭代服务器与并发服务器
4.10 字节流与消息
4.11 管道和FIFO限制
4.12 小结
习题
第5章 Posix消息队列
5.1 概述
5.2 mq_open、mq_close和mq_unlink函数
5.3 mq_getattr和mq_setattr函数
5.4 mq_send和mq_receive函数
5.5 消息队列限制
5.6 mq_notify函数
5.7 Posix实时信号
5.8 使用内存映射I/O实现Posix消息队列
5.9 小结
习题
第6章 System V消息队列
6.1 概述
6.2 msgget函数
6.3 msgsnd函数
6.4 msgrcv函数
6.5 msgctl函数
6.6 简单的程序
6.7 客户-服务器例子
6.8 复用消息
6.9 消息队列上使用select和poll
6.10 消息队列限制
6.11 小结
习题
第三部分 同步
第7章 互斥锁和条件变量
7.1 概述
7.2 互斥锁:上锁与解锁
7.3 生产者-消费者问题
7.4 对比上锁与等待
7.5 条件变量:等待与信号发送
7.6 条件变量:定时等待和广播
7.7 互斥锁和条件变量的属性
7.8 小结
习题
第8章 读写锁
8.1 概述
8.2 获取与释放读写锁
8.3 读写锁属性
8.4 使用互斥锁和条件变量实现读写锁
8.5 线程取消
8.6 小结
习题
第9章 记录上锁
9.1 概述
9.2 对比记录上锁与文件上锁
9.3 Posix fcntl记录上锁
9.4 劝告性上锁
9.5 强制性上锁
9.6 读出者和写入者的优先级
9.7 启动一个守护进程的唯一副本
9.8 文件作锁用
9.9 NFS上锁
9.10 小结
习题
第10章 Posix信号量
10.1 概述
10.2 sem_open、sem_close和sem_unlink函数
10.3 sem_wait和sem_trywait函数
10.4 sem_post和sem_getvalue函数
10.5 简单的程序
10.6 生产者-消费者问题
10.7 文件上锁
10.8 sem_init和sem_destroy函数
10.9 多个生产者,单个消费者
10.10 多个生产者,多个消费者
10.11 多个缓冲区
10.12 进程间共享信号量
10.13 信号量限制
10.14 使用FIFO实现信号量
10.15 使用内存映射I/O实现信号量
10.16 使用System V信号量实现Posix信号量
10.17 小结
习题
第11章 System V信号量
11.1 概述
11.2 semget函数
11.3 semop函数
11.4 semctl函数
11.5 简单的程序
11.6 文件上锁
11.7 信号量限制
11.8 小结
习题
第四部分 共享内存区
第12章 共享内存区介绍
12.1 概述
12.2 mmap、munmap和msync函数
12.3 在内存映射文件中给计数器持续加
12.4 .4BSD匿名内存映射
12.5 SVR4/dev/zero内存映射
12.6 访问内存映射的对象
12.7 小结
习题
第13章 Posix共享内存区
13.1 概述
13.2 shm_open和shm_unlink函数
13.3 ftruncate和fstat函数
13.4 简单的程序
13.5 给一个共享的计数器持续加
13.6 向一个服务器发送消息
13.7 小结
习题
第14章 System V共享内存区
14.1 概述
14.2 shmget函数
14.3 shmat函数
14.4 shmdt函数
14.5 shmctl函数
14.6 简单的程序
14.7 共享内存区限制
14.8 小结
习题
第五部分 远程过程调用
第15章 门
15.1 概述
15.2 door_call函数
15.3 door_create函数
15.4 door_return函数
15.5 door_cred函数
15.6 door_info函数
15.7 例子
15.8 描述符传递
15.9 door_sever_create函数
15.10 door_bind、door_unbind和door_revoke函数
15.11 客户或服务器的过早终止
15.12 小结
习题
第16章 Sun RPC
16.1 概述
16.2 多线程化
16.3 服务器捆绑
16.4 认证
16.5 超时和重传
16.6 调用语义
16.7 客户或服务器的过早终止
16.8 XDR:外部数据表示
16.9 RPC分组格式
16.10 小结
习题
后记
附录A 性能测量
附录B 线程入门
附录C 杂凑的源代码
附录D 精选习题解答
参考文献
索引
^ 收 起
W.Richard Stevens,国际知名的UNIX和网络专家,备受赞誉的技术作家他1951年2月5日出生于赞比亚,后随父母回到美国中学时就读于弗吉尼亚菲什伯恩军事学校,1973年获得密歇根大学航空和航天工程学士学位,1975年至1982年,他在亚利桑那州图森市的基特峰国家天文台从事计算机编程工作,业余时间喜爱飞行运动,做过兼职飞行教练这期间他分别在1978年和1982年获得亚利桑那大学系统工程硕士和博士学位此后他去康涅狄格州纽黑文的健康系统国际公司任主管计算机服务的副总裁,1990年他回到图森,从事专业技术写作和咨询工作写下了多种经典的传世之作。
《UNIX网络编程(卷1):套接字联网API(第3版)》:
是一部UNIX网络编程的经典之作!书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,最后还深入分析了流这种设备驱动机制。
内容详尽,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。
《UNIX网络编程(卷2):进程间通信(第2版)》:
是一部UNIX网络编程的经典之作!进程间通信(IPC)几乎是所有Unix程序性能的关键,理解IPC也是理解如何开发不同主机间网络应用程序的必要条件。《UNIX网络编程.卷2:进程间通信(第2版)》从对Posix IPC和System V IPC的内部结构开始讨论,全面深入地介绍了4种IPC形式:消息传递(管道、FIFO、消息队列)、同步(互斥锁、条件变量、读写锁、文件与记录锁、信号量)、共享内存(匿名共享内存、具名共享内存)及远程过程调用(Solaris门、Sun RPC)。附录中给出了测量各种IPC形式性能的方法。
^ 收 起
是一部UNIX网络编程的经典之作!书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,最后还深入分析了流这种设备驱动机制。
内容详尽,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。
《UNIX网络编程(卷2):进程间通信(第2版)》:
是一部UNIX网络编程的经典之作!进程间通信(IPC)几乎是所有Unix程序性能的关键,理解IPC也是理解如何开发不同主机间网络应用程序的必要条件。《UNIX网络编程.卷2:进程间通信(第2版)》从对Posix IPC和System V IPC的内部结构开始讨论,全面深入地介绍了4种IPC形式:消息传递(管道、FIFO、消息队列)、同步(互斥锁、条件变量、读写锁、文件与记录锁、信号量)、共享内存(匿名共享内存、具名共享内存)及远程过程调用(Solaris门、Sun RPC)。附录中给出了测量各种IPC形式性能的方法。
^ 收 起
比价列表
商家 | 评价 (0) | 折扣 | 价格 |
暂无 | 京东缺货4个月 | 7天前更新 |