Linux操作系统早已成为目前最流行的开源操作系统,在服务器、嵌入式系统有着广泛的应用,但是逐渐步入个人笔记本的桌面操作系统。Linux的网路程序设计在服务器领域、嵌入式领域有着广泛的应用。诸如Web服务器、P2P应用、嵌入式网路机顶盒、IPTV机顶盒、手持设备等,上述产品大部份采用了开源的Linux系统。为此,熟悉而且还能编撰网路程序代码,建立自己的网路构架程序是非常重要的。本书是获得了大量读者好评的“Linux珍藏大系”中的《Linux网路编程》的第2版。本书全面、系统地介绍了Linux网路编程技术,其中通过实例重点介绍了Linux的应用层网路设计、网络合同栈的实现原理和Linux内核防火墙的技术。学完本书以后,读者可以有编撰比较复杂项目的本领。关于“Linux珍藏大系”“Linux珍藏大系”是复旦学院出版社自2010年1月以来相继推出的一个图书系列,截至2013年1月,已然出版了10余个品种。该系列图书囊括了Linux技术的方方面面,可以满足各个层次和各个领域的读者学习Linux技术的需求。该系列图书自出版以来获得了广大读者的好评,早已成为Linux图书市场上最闪耀的名星品牌之一,其销量在同类图书中也名列前茅,其中一些图书还获得了“51CTO读书频道”颁发的“最受读者喜爱的原创IT技术图书奖”。
该系列图书出版过程中也得到了国外Linux领域最著名的技术社区ChinaUnix(简称CU)的大力支持和帮助,读者在CU社区中就图书的内容与活跃在CU社区中的Linux技术爱好者进行广泛交流,将会取得了良好的学习疗效。关于本书第2版本书第1版出版后受到读者好评,并被ChinaUNIX技术社区所推荐。并且随着Linux技术的发展,本书第1版的内容与Linux各个新版本有一定出入,这给读者的学习导致了一些不便。应广大读者的要求,我们结合Linux技术的最新发展推出第2版图书。相比第1版,第2版图书在内容上的变化主要彰显在以下几个方面:(1)操作系统环境从原有的Debian改为更为通用的Ubuntu。(2)Linux内核介绍降低了3.*系列。(3)对IT业界的动态进行了更新。(4)对一些专有名词的大小写进行了更正,如VIM、Emacs。(5)因为Vim分辨大小写,尤其在快捷键前面。为了防止读者误操作,所以对原有的快捷键大小写进行了重新确认,并更正部份错误的大小写。(6)更正了第1版中的部份描述错误,如Objective-C。(7)对GCC软件包进行了更新。(8)为了易于读者阅读和使用代码,对于完整的代码降低了行号。
(9)更正了部份调试选项的大小写错误。(10)对部份Shell命令进行了更新,如fdisk。(11)对Linux涉及的硬件信息进行了更新,如对Ext4的支持。(12)对须要重点注意的关键代码做了加粗。(13)对部份代码缺乏的库文件进行了补充。(14)更改了部份函数库的包含关系。(15)更改了部份变量的数据类型。(16)更改了部份代码行号的说明错误。本书的特性1.循序渐进linux操作系统介绍,由浅入深为了便捷读者学习,本书首先介绍Linux的开发环境,之后介绍基本的网络程序设计方式,再进行Linux内核的网路设计方式。最后,通过3个综合案例ubuntu linux,综合运用上述知识,让读者更深刻地了解网路程序设计的知识。在每一部份的介绍中都是根据由浅入深的形式进行介绍,先介绍基础知识,再结合中级知识进行介绍。2.技术全面,内容充实本书基本囊括了Linux网路程序设计的所有知识面,非常对于中级网路编程、原始套接字等中级应用层网路程序设计给出了全面的介绍和丰富的反例程序。不仅用户界面的网路程序设计外,本书还对内核空间的网路程序设计进行了详尽的介绍,针对netfilter框架,做了很细致的讲解,并给出了一个全面使用netfilter框架的案例,以便捷读者深入了解。
3.对比讲解,理解深刻因为Linux程序设计的知识用于空间和内核空间的代码和模块是互相作用的,在多个主要函数介绍过程中,本书对用户空间和内核空间进行交互式的对比介绍,使读者在了解怎样使用的情况下unix网络高级编程,更深入地了解为何这样用,所谓“知其然并知其所以然”。4.案例精讲,深入分析依据本人多年的项目经验,只有实际接触案例和代码才才能对知识点更深入地了解。本书在介绍了Linux网路程序设计知识点的基础上,通过具有典型意义的3个案例,对各个知识点包括应用层的HTTP合同的Web服务器、协议栈原理的合同栈案例和内核网路的防火墙案例进行了深入分析。本书内容及体系结构第1篇Linux网路开发基础(第1~4章)本篇主要内容包括:Linux操作系统概述、Linux编程环境、文件系统简介、程序、进程和线程。通过本篇的学习,读者可以把握Linux编程的基础知识,以及编程环境。第2篇Linux用户层网路编程(第5~15章)本篇主要内容包括:TCP/IP合同族简介、应用层网路服务程序简介、TCP网路编程基础、服务器和顾客端信息的获取、数据的IO和复用、基于UDP合同的接收和发送、高级套接字、套接字选项、原始套接字、服务器模型选择、IPv6简介。
通过本篇的学习,读者可以把握Linux网路编程的大部份知识。第3篇Linux内核网路编程(第16章和第17章)本篇主要内容包括:Linux内核中网路部份结构,以及分布和netfilter框架内报文处理。通过本篇的学习,读者可以初步了解Linux内核网路编程的知识。第4篇综合案例(第18~20章)本篇主要内容包括:一个简单Web服务器的反例SHTTPD、一个简单网路合同栈的反例SIP、一个简单防火墙的反例SIPFW。通过本篇的学习,读者可以全面了解一个完整可用的Linux网路程序是怎样编撰的。本书学习建议*建议没有基础的读者,从前至后顺次阅读,尽量不要跳跃。*书中的实例和示例建议读者都要亲自上机动手实践,学习疗效会更好。*第4篇的内容侧重于实战,这部份内容在早期可以不须要全面把握,只要理解思想即可,等读者有了较多开发经验后可进一步通读。本书读者对象*想全面学习Linux网路编程的人员;*Linux网路编程从业人员;*Linux网路编程爱好者;*大大专高校的中学生;*社会培训班的学员;*须要一本案头必备指南的开发人员。本书作者本书由宋敬彬主笔编撰。其他参与编撰的人员有陈超、陈锴、陈佩霞、陈锐、黎华、李鹏钦、李森、李奕辉、李玉莉、刘仲义、卢香清、鲁木应、马向东、麦廷琮、米永刚、欧阳昉、綦彦臣、冉卫华、宋永强、滕科平、王秀丽、王玉芹、魏莹、魏宗寿、温本息。其实我们对书中所述的内容都尽量给以核对,并多次进行文字校对unix网络高级编程,但可能还存在偏颇和不足之处,请求读者批评见谅。编绘者
more>