UNIX Network Programming Volume 1
网络编程即编写通过计算机网络与其他程序进行通信的这类程序。
本书将叙述两种网络编程API(应用程序编程接口application programming interface)。
1、套接口(sockets),有时称为“Berkeley套接口”,因为它源自Berkeley Unix。
2、XTI(X/Open传输接口),它是对AT&T开发的传输层接口(TLI)经少量修改的产物。
网络编程所需的基础知识和概念在很大程度上并不依赖于操作系统。本书的例子都基于TCP/IP协议族,既有IP版本4,又有版本6。
编写网络程序要求人们了解底层的操作系统和网络协议。本书是作者在这两个领域的其他四本书的基础上书写的,它们的名称在文中缩写如下:
APUE: Advanced Programming in the UNIX Environment[Stevens 1992]
TCPv1: TCP/IP Illustrated, Volume 1[Stevens 1994]
TCPv2: TCP/IP Illustrated, Volume 2[Wright and Stevens 1995]
TCPv3: TCP/IP Illustrated, Volume 3[Stevens 1996]
本书尽可能描述Posix接口。这不仅包括基本Unix函数的Posix.1标准,而且包括套接口和XTI网络API的即将出台的Posix.1g标准,以及线程的1996Posix.1标准。
说实话,我在讲授网络编程时发现,所有的网络编程问题中约有80%跟网络编程本身是不相关的。也就是说,这些问题不是针对诸如accept和select等API函数的,面是因缺乏对底层网络协议的理解而引起的。
这套《UNIX网络编程》系列丛书至少还有另外两卷也在写作计划之中。
卷2的副标题或许是《IPC:进程间通信》(英文名称为IPC:Interprocess Communication)
卷3的副标题或许是《应用程序》(英文名称为Applications)
本书既可用作网络编程的指导书,也可作为有经验程序员的参考书。
尽管套接口API已成为网络编程的既成事实标准,XTI API也仍在使用,有时是用在非TCP/IP的协议族上。
不论使用哪一个API(套接口或XTI),有关非阻塞I/O、广播、多播、信号驱动I/O、带外数据和线程的使用都有相同的概念。其实,许多网络编程问题基本类似,与程序是使用套接口API还是使用XTI API编写的无关,很少有使用这个API能干而使用那个API却干不了的事。一句话,概念相同,差别公在函数名和参数而已。
本书源码地址:~rstevens
阅读(1768) | 评论(0) | 转发(0) |