2017-05-16 16:48:00 weixin_30916125 阅读数 60

  


下载地址:网盘下载


卷一

基本信息
作 者: (美)史蒂文斯,(美)芬纳,(症状)鲁道夫 著
出 版 社: 人民邮电出版社
出版时间: 2009-11-1
纸 张: 胶版纸
I S B N : 9787115215093
包 装: 平装
所属分类: 图书 >> 计算机/网络 >> 操作系统/系统开发 >> UNIX Solaris
定价:¥129.00
内容简介
本书是一部UNIX网络编程的经典之作。书中全面深入地介绍了如何使用套接字API进行网络编程。全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,最后还深入分析了流这种设备驱动机制。
目录
Part 1 Introduction and TCP/IP
简介和TCP/IP
Chapter 1 Introduction
简介
1.1 Introduction
概述
1.2 A Simple Daytime Client
一个简单的时间获取客户程序
1.3 Protocol Independence
协议无关性
1.4 Error Handling: Wrapper Functions
错误处理:包装函数
1.5 A Simple Daytime Server
一个简单的时间获取服务器程序
1.6 Roadmap to Client/Server Examples in theText
本书中客户/服务器示例的路线图
1.7 OSI Model
OSI模型
1.8 BSD Networking History
BSD网络历史
1.9 Test Networks and Hosts
测试用网络及主机
1.10 Unix Standards
Unix标准
1.11 -Bit Architectures
位体系结构
1.12 Summary
小结
Chapter 2 The Transport Layer: TOP,UDP, and SCTP
传输层:TCP、UDP和SCTP
2.1 Introduction
概述
2.2 The Big Picture
全景图
2.3 User Datagram Protocol (UDP)
用户数据报协议
2.4 Transmission Control Protocol (TCP)
传输控制协议
2.5 Stream Control Transmission Protocol(SCTP)
流控制传输协议
2.6 TCP Connection Establishment andTermination
TCP连接的建立和终止
2.7 TIME_WAIT State
TIME_WAIT状态
2.8 SCTP Association Establishment andTermination
SCTP关联的建立和终止
2.9 Port Numbers
端口号
2.10 TCP Port Numbers and ConcurrentServers
TCP端口号与并发服务器
2.11 Buffer Sizes and Limitations
缓冲区大小及限制
2.12 Standard Internet Services
标准因特网服务
2.13 Protocol Usage by Common InternetApplications
常见因特网应用所用的协议
2.14 Summary
小结
Part 2 Elementary Sockets
基本套接字
Chanter 3 Sockets Introduction
套接字简介
3.1 Introduction
概述
3.2 Socket Address Structures
套接字地址结构
3.3 Value-Result Arguments
值-结果参数
3.4 Byte Ordering Functions
字节排序函数
3.5 Byte Manipulation Functions
字节操纵函数
3.6 inet_aton, inet_addr, and inet_ntoa Functions
inet_aton、inet_addr和inet_ntoa函数
3.7 inet_pton and inet_ntop Functions
inet_pton和inet_ntop函数
3.8 sock_ntop and Related Functions 6
sock_ntop和相关函数
3.9 readn, writen, and readline Functions
readn、writen和readline函数
3.10 Summary
小结
Chapter 4 Elementary TCP Sockets
基本TCP套接字
4.1 Introduction
概述
4.2 socket Function
socket函数
4.3 connect Function
connect函数
4.4 bind Function
bind函数
4.5 listen Function
listen函数
4.6 accept Function
accept函数
4.7 fork and exec Functions
fork和exec函数
4.8 Concurrent Servers
并发服务器
4.9 close Function
close函数
4.10 getsockname and getpeernameFunctions
getsockname和getpeername函数
4.11 Summary
小结
Chapter 5 TCP Client/Server Example
TCP客户/服务器示例
5.1 Introduction
概述
5.2 TCP Echo Server: main Function
TCP回送服务器程序:main函数
5.3 TCP Echo Server: str_echo Function
TCP回送服务器程序:str_echo函数
5.4 TCP Echo Client: main Function
TCP回送客户程序:main函数
5.5 TCP Echo Client: str_cli Function
TCP回送客户程序:str_cli函数
5.6 Normal Startup
正常启动
5.7 Normal Termination
正常终止
5.8 POSIX Signal Handling
POSIX信号处理
5.9 Handling SIGCHLD Signals
处理SIGCHLD信号
5.10 wait and waitpid Functions
wait和waitpid函数
5.11 Connection Abort before acceptReturns
accept返回前连接异常中止
5.12 Termination of Server Process
服务器进程的终止
5.13 SIGPIPE Signal
SIGPIPE信号
5.14 Crashing of Server Host
服务器主机崩溃
5.15 Crashing and Rebooting of Server Host
服务器主机崩溃及重启
5.16 Shutdown of Server Host
服务器主机关机
5.17 Summary of TCP Example
TCP示例小结
5.18 Data Format
数据格式
5.19 Summary
小结
Chapter 6 I/O多路复用:select和poll函数
Chapter 7 套接字选项
Chapter 8 基本UDP套接字
Chapter 9 基本SCTP套接字
Chapter 10 SCTP客户/服务器示例
Chapter 11 名字与地址转换
Part 3 高级套接字
Chapter 12 IPv4与IPv6的互操作性
Chapter 13 守护进程和inetd超级服务器程序
Chapter 14 高级I/O函数
Chapter 15 Unix域协议
Chapter 16 非阻塞I/O
Chapter 17 ioctl操作
Chapter 18 路由套接字
Chapter 19 密钥管理套接字
Chapter 20 广播
Chapter 21 多播
Chapter 22 高级UDP套接字
Chapter 23 高级SCTP套接字
Chapter 24 带外数据
Chapter 25 信号驱动I/O
Chapter 26 线程
Chapter 27 IP选项
Chapter 28 原始套接字
Chapter 29 数据链路访问
Chapter 30 多种客户/服务器设计方式
Chapter 31 STREAMS
Appendix A IPv4、IPv6、ICMPv4和ICMPv6
Appendix B 虚拟网络
Appendix C 调试技术
Appendix D 其他源代码
Appendix E 精选习题答案
参考文献
索引

卷二

图书信息
书 名: UNIX网络编程卷2:进程间通信
作 者:(美)史蒂文斯
出版时间: 2009-11-1
ISBN: 9787115215116
开本: 16开
定价: 89.00元


下载地址:网盘下载

转载于:https://www.cnblogs.com/long12365/p/9732045.html

2013-08-07 15:12:22 teamLevis 阅读数 519

转载自【http://download.csdn.net/download/fksec/4653826#】

作者在下载资源中列得很详细,大多数这本书都是PDF扫描版本,查找函数时非常不方便;

不管这个目录怎么来的,请拜谢整理;

------------

CruiseYoung提供的带有详细书签的电子书籍目录【http://blog.csdn.net/fksec/article/details/7888251】

(UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订))

目录

封面 -14

扉页 -13

版权 -12

版权声明 -11

序 -10

前言 -9

目录 -6

第一部分 简介和TCP/IP 1

第1章 简介 2

1.1 概述 2

1.2 一个简单的时间获取客户程序 5

1.3 协议无关性 9

1.4 错误处理:包裹函数 10

1.5 一个简单的时间获取服务器程序 12

1.6 本书中客户/服务器程序示例索引表 14

1.7 OSI模型 16

1.8 BSD网络支持历史 17

1.9 测试用网络及主机 19

1.10 Unix标准 22

1.11 64位体系结构 24

1.12 小结 25

习题 25

第2章 传输层:TCP、UDP和SCTP 27

2.1 概述 27

2.2 总图 27

2.3 用户数据报协议(UDP) 29

2.4 传输控制协议(TCP) 30

2.5 流控制传输协议(SCTP) 31

2.6 TCP连接的建立和终止 31

2.7 TIME_WAIT状态 37

2.8 SCTP关联的建立和终止 38

2.9 端口号 42

2.10 TCP端口号与并发服务器 43

2.11 缓冲区大小及限制 45

2.12 标准因特网服务 50

2.13 常见因特网应用的协议使用 51

2.14 小结 52

习题 53

第二部分 基本套接字编程 55

第3章 套接字编程简介 56

3.1 概述 56

3.2 套接字地址结构 56

3.3 值-结果参数 61

3.4 字节排序函数 63

3.5 字节操纵函数 66

3.6 inet_aton、inet_addr和inet_ntoa函数 67

3.7 inet_pton和inet_ntop函数 68

3.8 sock_ntop和相关函数 70

3.9 readn、writen和readline函数 72

3.10 小结 76

习题 76

第4章 基本TCP套接字编程 77

4.1 概述 77

4.2 socket函数 77

4.3 connect函数 80

4.4 bind函数 81

4.5 listen函数 84

4.6 accept函数 88

4.7 fork和exec函数 90

4.8 并发服务器 91

4.9 close函数 93

4.10 getsockname和getpeername函数 94

4.11 小结 96

习题 96

第5章 TCP客户/服务器程序示例 97

5.1 概述 97

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

5.3 TCP回射服务器程序:str_echo函数 98

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

5.5 TCP回射客户程序:str_cli函数 100

5.6 正常启动 101

5.7 正常终止 102

5.8 POSIX信号处理 103

5.9 处理SIGCHLD信号 106

5.10 wait和waitpid函数 108

5.11 accept返回前连接中止 111

5.12 服务器进程终止 112

5.13 SIGPIPE信号 113

5.14 服务器主机崩溃 114

5.15 服务器主机崩溃后重启 115

5.16 服务器主机关机 116

5.17 TCP程序例子小结 116

5.18 数据格式 117

5.19 小结 120

习题 120

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

6.1 概述 122

6.2 I/O模型 122

6.3 select函数 127

6.4 str_cli函数(修订版) 132

6.5 批量输入 133

6.6 shutdown函数 136

6.7 str_cli函数(再修订版) 137

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

6.9 pselect函数 142

6.10 poll函数 144

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

6.12 小结 148

习题 149

第7章 套接字选项 150

7.1 概述 150

7.2 getsockopt和setsockopt函数 150

7.3 检查选项是否受支持并获取默认值 152

7.4 套接字状态 156

7.5 通用套接字选项 156

7.6 IPv4套接字选项 168

7.7 ICMPv6套接字选项 169

7.8 IPv6套接字选项 169

7.9 TCP套接字选项 171

7.10 SCTP套接字选项 173

7.11 fcntl函数 182

7.12 小结 184

习题 184

第8章 基本UDP套接字编程 186

8.1 概述 186

8.2 recvfrom和sendto函数 187

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

8.4 UDP回射服务器程序:dg_echo函数 188

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

8.6 UDP回射客户程序:dg_cli函数 190

8.7 数据报的丢失 191

8.8 验证接收到的响应 191

8.9 服务器进程未运行 193

8.10 UDP程序例子小结 194

8.11 UDP的connect函数 196

8.12 dg_cli函数(修订版) 199

8.13 UDP缺乏流量控制 200

8.14 UDP中的外出接口的确定 203

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

8.16 小结 206

习题 207

第9章 基本SCTP套接字编程 208

9.1 概述 208

9.2 接口模型 208

9.3 sctp_bindx函数 212

9.4 sctp_connectx函数 213

9.5 sctp_getpaddrs函数 213

9.6 sctp_freepaddrs函数 213

9.7 sctp_getladdrs函数 214

9.8 sctp_freeladdrs函数 214

9.9 sctp_sendmsg函数 214

9.10 sctp_recvmsg函数 215

9.11 sctp_opt_info函数 215

9.12 sctp_peeloff函数 216

9.13 shutdown函数 216

9.14 通知 217

9.15 小结 221

习题 222

第10章 SCTP客户/服务器程序例子 223

10.1 概述 223

10.2 SCTP一到多式流分回射服务器程序:main函数 223

10.3 SCTP一到多式流分回射客户程序:main函数 225

10.4 SCTP流分回射客户程序:sctpstr_cli函数 226

10.5 探究头端阻塞 228

10.6 控制流的数目 233

10.7 控制终结 233

10.8 小结 234

习题 235

2017-05-02 11:23:00 weixin_34198583 阅读数 9

本节书摘来自异步社区《UNIX/Linux 系统管理技术手册(第四版)》一书中的第2章,第2.6节,作者:【美】Evi Nemeth , Garth Snyder , Trent R.Hein , Ben Whaley著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.6 脚本编程的最佳实践

UNIX/Linux 系统管理技术手册(第四版)
虽然本章里的代码片段几乎不带注释,而且很少打印用法说明,只是因为我们已经列出了每个例子的大纲,从而体现出若干关键点。实际的脚本应该有更好的表现。有几本书通篇就讲编码的最佳实践,不过其中的基本指导原则如下。

如果运行脚本时带了不合适的参数,脚本应该打印一则用法说明,然后再退出。更好的做法是,也以这样的方式实现--help选项。
验证输入的有效性,并检查获得的输入值。例如,在对算出来的一个路径执行rm -fr操作之前,可能要让脚本复查这条路径是否符合期望的模式。此时会发现脚本编程语言的“污点(taint)”功能很有帮助。
返回一个恰当的退出码:0表示成功,非0表示不成功。但是,没有必要非要给每种不成功的模式分配一个唯一的退出码,考虑调用程序实际想要的是什么。

用适当的命名约定来给变量、脚本以及函数起名字。名字要符合该语言的惯例,符合代码库中大部分代码的习惯,最重要的是,符合当前项目里定义的其他变量和函数的惯例。用大小写或者下划线来让长名字可读性更好1。

用变量名反映变量保存的值,但要保持简洁。number_of_lines_of_input这样就太长了;试试用n_lines。

考虑形成一种指导风格,这样一来,你和你的团队成员都可以按照相同的规范来编写代码。有了这样的指导,在阅读别人写的代码,或者别人阅读你写的代码时,都会变得更容易。

每个脚本开头有一段注释,说明该脚本的作用以及它接受的参数。注释里要包括作者的名字和编写日期。如果这个脚本需要在系统上安装非标准的工具、库或者模块,那么也要把它们列出来。

注释要达到的程度是,过一两个月再来看这个脚本,发现注释很有帮助就行了。有关注释的一些要点如下:选择的算法、没有按显然更好的方式去做的理由、代码里不常见的路径,以及在开发期间成为障碍的任何东西。不要到处乱写没用的注释;要假定阅读代码的人不傻,而且熟悉语言。

最好做到代码块级或者函数级的注释。对变量功能的注释说明应该出现在变量声明或者首次使用变量的地方。

以root身份运行脚本是可以的,但要避免设置这些脚本的setuid位;保证setuid的脚本彻底安全相当费事儿。所以代之以用sudo来实现适当的访问控制策略。

对于bash来说,在执行命令之前,先用-x回显命令,用-n检查命令的语法,却不执行它们。

Perl的-w选项可以把某些可疑行为报告给用户,如变量未设置就先使用这样的问题。可以把这个选项加到脚本的“#!”一行里,或者用use warnings打开该程序的文字提示。

在Python中,除非在命令行用-0参数显式地关闭debug(调试)模式,否则就在这个模式下。这意味着,可以在打印诊断输出之前,先测试特殊的debug变量。

对于产生有用的出错消息而言,Tom Christiansen提出了下面5条黄金法则:

出错消息应该送到STDERR而不是STDOUT;
包括发布该出错消息的程序名;
说明什么函数或者操作未成功;
如果一次系统调用失败,那么就要包括perror这个字符串(在Perl里是$!);
用0之外的其他一些出错码退出。
Perl可以轻易遵守所有5条法则:

die  "can’t open $filename: $!";
没有更多推荐了,返回首页