第一图书网

UNIX网络编程 卷1

Richard Stevens 人民邮电出版社
出版时间:

2009  

出版社:

人民邮电出版社  

作者:

Richard Stevens  

页数:

991  

字数:

1215000  

Tag标签:

无  

前言

  本书的第1版本于1990年问世,并迅速成为程序员学习网络编程的权威参考书。时至今日,计算机网络技术已发生了翻天覆地的变化。只要看看第1版给出的用于征集反馈意见的地址(“uunet!hsi!netbook”)就一目了然了。(有多少读者能看出这是20世纪80年代很流行的UUCP拨号网络的地址?)  现在UUCP网络已经很罕见了,而无线网络等新技术则变得无处不在!在这种背景下,新的网络协议和编程范型业已开发出来,但程序员却苦于找不到一本好的参考书来学习这些复杂的新技术。  这本书填补了这一空白。拥有本书旧版的读者一定想要一个新的版本来学习新的编程方法,了解IPv6等下一代协议方面的新内容。所有人都非常期待本书,因为它完美地结合了实践经验、历史视角以及在本领域浸淫多年才能获得的透彻理解。  阅读本书是一种享受,我收获颇丰。相信大家定会有同感。

内容概要

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

作者简介

  W. Richard Stevens(1951—1999) 国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有《TCP/IP详解》(三卷)、《UNIX环境高级编程》和《UNIX网络编程》(两卷),均为不朽的经典著作。  Bill Fenner AT&T实验室的主要技术人员,专攻IP多播、网络管理和测量,他是IETF路由的领域主管之一,负责审批作为RFC出版的所有路由相关文档。  Andrew M. Rudoff Sun公司的资深软件工程师,专攻网络、操作系统内核、文件系统和高可用性软件体系结构。

书籍目录

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 STREAMSAppendix A IPv4、IPv6、ICMPv4和ICMPv6Appendix B 虚拟网络Appendix C 调试技术Appendix D 其他源代码Appendix E 精选习题答案参考文献索引

章节摘录

  1.1 Introduction 概述  When writing programs that communicate across a computer network, one must first invent a protocol, an agreement on how those programs will communicate. Before delv- ing into the design details of a protocol, high-level decisions must be made about which program is expected to initiate communication and when responses are expected. F  r example, a Web server is typically thought of as a long-running program (or daemon) that sends network messages only in response to requests coming in from the network. The other side of the protocol is a Web client, such as a browser, which always initiates communication with the server. This organization into client and server is used by most network-aware applications. Deciding that the client always initiates requests tends to simplify the protocol as well as the programs themselves. Of course, some of the more complex network applications also require asynchronous callback communication, where the server initiates a message to the client. But it is far more common for applications to stick to the basic client/server model shown in Figure 1.1.  Clients normally communicate with one server at a time, although using a Web browser as an example, we might communicate with many different Web servers over, say, a 10-minute time period. But from the servers perspective, at any given point in time, it is not unusual for a server to be communicating with multiple clients. We show this in Figure 1.2. Later in this text, we will cover several different ways for a server to handle multiple clients at the same time.

媒体关注与评论

  “所有人都非常期待这本书,因为它完美地结合了实践经验、历史视角以及在本领域浸淫多年才能获得的透彻理解。阅读本书是一种享受,我收获颇丰。相信大家定会有同感。”  ——Sam Leffler,FreeBSD基金会副主席  “这部著作在计算机科学领域里的传奇得以延续,Bill Fenner和Andrew Rudoff居功至伟。”  ——Art Sedighi  “这套书是学习网络编程最好的书。全世界最最好的,远超群伦。”  ——S. Devasundaram  “这本书极好……买吧,这本书非常专业,物有所值,对每一个准备从事UNIX系统网络编程的人来说都是必备的。”  ——L. Garcia  “这本书包括了我想了解的UNIX套接字API的所有知识。”  ——Thomas Haugland Jensen  “这本书不会让你一夜之间成为专家,但它终究会让你成为专家。”  ——John Nguyen  “你若是个重任在肩的网络程序员骨干,这本书绝对是给你写的,即使你不是,也能从中学到不少东西。”  ——Russ Woodman  “任何词语都无法表达出这本书有多好!我诚恳地推荐初学者买这本书,我保证你一定会成为网络大师。我自己刚读完这本书,并在工作中经常用到,我能感觉到自己的功力倍增,真是奇妙!”  ——“kael8952”


编辑推荐

  这是一部传世之作!顶级网络编程专家Bill Fenner和Andrew M.Rudooff应邀执笔,对W.Richard Stevens的经典作品进行修订。书中吸纳了近几年网络技术的发展。增添了IPv6、SCTP协议和密钥管理套接字等内容,深入讨论了最新的关键标准、实现和技术。  书中的所有示例都是在UNIX系统上测试通过的真实的、可运行的代码,继承了Stevens一直强调的理念:“学习网络编程的最好方法就是下载这些程序,对其进行修改和改进。只有这样实际编写代码才能深入理解有关概念和方法。”读者可以从图灵网站《UNIX网络编程 卷1:套接字联网API(英文版 第3版)》网页免费注册下载这些示例的源代码。  《UNIX网络编程 卷1:套接字联网API(英文版 第3版)》为UNIX网络编程提供了全面的指导。是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。  《UNIX网络编程 卷1:套接字联网API(英文版 第3版)》中文版预计在2010年5月出版。敬请期待。  UNIX和网络专家W. Richard Stevens的传世之作  UNIX系统网络编程人员的必备经典  内容详尽权威,提供精选习题及答案  详细描述4种不同的IPC形式  在Unix系统上测试通过的真实、可运行的代码让读者轻松深入学习网络编程复杂的新技术。

图书封面

图书标签Tags

广告

下载页面


UNIX网络编程 卷1 PDF格式下载



书里写得很详细,由浅入深,写了应该怎样做,为什么这样做,做了之后还有什么不足,应该怎样去完善。与同内同类书籍最大的区别就是:此书给出一个解决方法,再找出其中的不足,然后再去完善它;而国内的最开始就给出一个较完善的解决方案,使得入门较难,就算学懂了,遇到了新问题,也不知道是哪个地方出现了问题。
所以,搜索到此书,且有意向unix网络编程发展的童鞋,一定要买,值得买!


经典中的经典!学习Unix/linux下网络编程的必备书籍!


很好,质量、内容俱佳,是学习网络编程的好书


这本同时Stevens写的书,经典建议大家读一下英文版的,因为原汁原味的感觉很好


堪称POSIXSocket编程的圣经~强烈推荐!


对于像学Linux,Unix的同志,这本书可以说是必须的。虽然是原版,看起来困难也不是很大。主要是介绍的很彻底。


才下单没多久,当当搞活动,什么买多少返20的……

很多评论说翻译不好,我也就直接英文版了

还没看呢


入门的书,还行


赞一个~~
当快递太慢了 囧。。


不过就是没有送我笔记本……


这本书是非常好用的UNIX网络编程的书籍,写得非常详细,很适合初学者使用。这次的这本书,质量也很好,我想如果他们可以将书本的原包装保留的话,就会更好的。


还在看,经典书,不必多说,要是纸质能轻便点就好了


以为是英文版的影印版,收到后发现不是,不过还好


好在不收邮费,价格还能接受,要是再便宜点就更好了。书的质量我很满意。货到付款的方式也可靠,也准时。


只知道作者是有背景的。只能说,作为网络编程同类书的始祖,有参考价值。


相关图书