出版时间:2010-1 出版社:清华大学出版社 作者:宋敬彬,孙海滨 等编著 页数:690
Tag标签:无
前言
Linux操作系统已经成为目前最流行的开源操作系统,在服务器、嵌入式系统有着广泛的应用,并且逐步走入个人电脑的桌面操作系统。Linux的网络程序设计在服务器领域、嵌入式领域有着广泛的应用。例如Web服务器、P2P应用、嵌入式网络机顶盒、IPTV机顶盒、手持设备等,上述产品大部分采用了开源的Linux系统。因此,熟悉并且能够编写网络程序代码,构建自己的网络架构程序是十分重要的。 本书全面地介绍了Linux的网络编程技术,并以实例介绍了Linux的应用层网络设计、网络协议栈的实现原理和Linux内核防火墙的技术。学完本书之后,读者可以有编写比较复杂项目的本领。 本书的特点 1.循序渐进,由浅入深 为了方便读者学习,本书首先介绍Linux的开发环境,然后介绍基本的网路程序设计方法,再进行Linux内核的网络设计方法。最后,通过3个综合案例,综合运用上述知识,让读者更深刻地了解网络程序设计的知识。在每一部分的介绍中都是按照由浅入深的方式进行介绍,先介绍基础知识,再结合高级知识进行介绍。 2.技术全面,内容充实 本书基本涵盖了Linux网络程序设计的所有知识面,特别对于高级网络编程、原始套接字等高级应用层网络程序设计给出了全面的介绍和丰富的例子程序。除了用户界面的网络程序设计外,本书还对内核空间的网络程序设计进行了详细的介绍,针对netfilter框架,做了很细致的讲解,并给出了一个全面使用netfilter框架的案例方便读者深入了解。 3.对比讲解,理解深刻 由于Linux程序设计的知识用于空间和内核空间的代码和模块是相互作用的,在多个主要函数介绍过程中,本书对用户空间和内核空间进行交互式的对比介绍,使读者在了解如何使用的情况下,更深入地了解为什么这样用,“知其然并知其所以然”。 4.案例精讲,深入剖析 根据本人多年的项目经验,只有实际接触案例和代码才能够对知识点更深入地了解。本书在介绍了Linux网络程序设计知识点的基础上,通过具有典型意义的3个案例,对各个知识点包括应用层的HTTP协议的Web服务器、协议栈原理的协议栈案例和内核网络的防火墙案例进行了深入剖析。 本书的内容 第1章:为了方便读者对Linux历史文化的了解,这一章从Linux的发展历史、发展要素、发行版本和内核的选择、架构、GPL许可证等几个方面向读者介绍Linux操作系统。 第2章:比较详细地介绍了在Linux环境下进行软件开发所必须的几个方面,包括Linux环境下的编辑器、GCC编译器、Makefile的编写、如何使用GDB进行程序调试等。 第3章:介绍了Linux下的文件系统的概念以及如何使用文件相关函数进行文件操作,通过本章读者可以掌握文件编程。 第4章:对Linux下进程、线程以及之间的通信方法进行了详细的介绍。内容包含进程和线程的概念、进程的产生方式、进程间的IPC通信、Linux下的线程及通信方法。 第5章:重点介绍了TCP/IP的模型和多个主要的协议类型,并对IP地址的概念进行了介绍,最后简单介绍了字节序的概念。 第6章:介绍了用户空间的网络协议,包含HTTP协议、FTP协议、NFS协议和TELNET协议,最后介绍了如何利用xinetd定义自己的网络服务。 第7章:重点介绍了TCP网络程序设计的基础知识,包括套接字地址结构、TCP网络程序流程。对套接字编程的主要函数进行了介绍,并提供了一个简单的例子。
内容概要
Linux是目前最流行的开源操作系统,网络功能在Linux下占有核心的地位。本书循序渐进地从应用层到Linux内核、从基本知识点到综合案例,向读者介绍如何在Linux下进行网络程序设计。本书内容分为4个部分:Linux程序设计基础部分、Linux用户空间网络编程部分、Linux内核网络编程部分以及综合案例部分。内容包含Linux系统概述、Linux编程环境、Linux文件系统简介、Linux下的进程和线程、TCP/IP协议族、应用层网络服务程序、TCP编程、主机信息获取、数据IO复用、UDP编程、高级套接字、套接字选项、原始套接字、服务器模型、IPv6、Linux内核网络部分结构及分布、netfilter框架内报文处理。为了方便读者学习,本书最后一个部分介绍了3个综合案例,包括应用层的Web服务器例子、简单的应用层网络协议站例子和内核层网防火墙的例子。 本书适合广大的Linux平台下的网络程序设计人员和大中专院校学生阅读,尤其是有一定Linux基础知识的编程技术人员。
作者简介
宋敬彬,海信集团国家重点实验室高级工程师。海信数字家庭原型系统的主要设计及实现人员。有十多年的Linux编程经验,对Linux内核和网络协议栈十分熟悉。长期从事嵌入式Linux设备、机顶盒产品、IGRS设备互联的研究和开发工作。目前主要从事数字家庭系统的设计和实现。曾经在技术期刊上发表过多篇技术论文。曾经参加过国家863高性能集群服务器、电子发展基金的IPv6等项目的研究和开发。
书籍目录
第1篇 Linux网络开发基础 第1章 Linux操作系统概述 第2章 Linux编程环境 第3章 文件系统简介 第4章 程序、进程和线程 第2篇 Linux用户层网络编程 第5章 TCP/IP协议族简介 第6章 应用层网络服务程序简介 第7章 TCP网络编程基础 第8章 服务器和客户端信息的获取 第9章 数据的IO和复用 第10章 基于UDP协议的接收和发送 第11章 高级套接字 第12章 套接字选项 第13章 原始套接字 第14章 服务器模型选择 第15章 IPv6简介 第3篇 Linux内核网络编程 第16章 Linux内核中网络部分结构以及分布 第17章 netfilter框架内报文处理 第4篇 综合案例 第18章 一个简单Web服务器的例子SHTTPD 第19章 一个简单网络协议栈的例子SIP 第20章 一个简单防火墙的例子SIPFW
章节摘录
Linux操作系统的名称最初并没有被称做Linux。Linus给他的操作系统取的名字是Freax,这个单词的含义是怪诞的、怪物、异想天开的意思。当Torvalds将他的操作系统上传到服务器ftp.funet.fi上的时候,这个服务器的管理员Ari Lemke对Freax这个名称很不赞成,所以将操作系统的名称改为了Linus的谐音Linux,于是这个操作系统的名称就以Linux流传下来。 在Linus的自传Oust for Fun))一书中,Linus解释说:“Ari Lemke,他十分不喜欢Freax这个名字。倒喜欢我当时正在使用的另一个名字Linux,并把我的邮件路径命名为pubOS/Linux。我承认我并没有太坚持。但这一切都是他搞的。所以我既可以不惭愧地说自己不是那么以个人为中心,但是也有一点个人的荣誉感。而且个人认为,Linux是个不错的名字。”实际上,在早期的源文件中仍然使用Freax作为操作系统的名字,可以从Makefile文件中看出此名称的一些蛛丝马迹。
编辑推荐
感谢ChinaUnix.nef技术社区对本系列图书的支持! China Unix.net是一个以讨论操作系统、软件开发、数据库技术、网络技术及服务器存储等技术为主的大型lT技术社区网站。China Unix.net的宗旨是给所有爱好IT技术、开源技术的朋友提供一个自由、开放和免费的交流空间。China Unix.netAO目标是建成中国最好的开源技术共享社区,为宣传和推动开源技术及自由软件在中国的应用发展做出贡献。China Unix.net的网址为:http://www.chinaunix.net。 内容全面:全书涵盖Linux网络编程从基础到高级开发的方方面面 内容深入:重点讲解了技术性较强的Linux用户空间网络编程及内核网络编程 注重原理:对每个知识点都从原始概念和基本原理进行详细、透彻地分析 插图丰富:对比较复杂和难度较高的内容绘制了220余幅原理图进行讲解 代码经典:书中的示例代码大多是从实际项目总结而来,有很强的实用性 实践性强:贯穿450余个示例、70余个实例及3个案例进行讲解 案例典型:详细介绍了HTTP网络服务器、协议栈和防火墙的实现 资深程序员十年经验总结,深入探讨Linux应用层和内核层的网络编程 详细讲解HTTP服务器、协议栈和防火墙三个典型案例的实际开发过程 一线技术人员全力打造,分享Linux技术盛宴!《Linux网络编程》重点内容及特色 《Linux网络编程》是一本全面、系统、深入介绍Linux网络编程的技术宝典。涉及Linux网络编程基础用户空间网络编程、Linux内核网络编程及Linux网络编程典型案例。 《Linux网络编程》基本涵盖了Linux网络编程的所有知识点,尤其对高级网络编程、原始套接字等高级应用层网络程序设计进行了深入介绍,并给出了丰富的例程。 《Linux网络编程》不仅介绍了用户界面的网络程序设计,还对内核空间的网络程序设计进行了详细的介绍。对netfilter框架进行了很细致的讲解,并给出了一个全面使用netfilter框架的案例。 《Linux网络编程》在对多个主要函数进行介绍时,对用户空间和内核空间的相互作用进行了对比介绍,便于者不仅了解如何使用它们,而且可以更加深入地理解为何这样用,做到知其然并知其所以然, 《Linux网络编程》最后提供的三个典型案例来源于作者的实际项目:总结了应用层的web服务器开发、简单的应用层网络协议栈开发及内核层的网络防火墙开发,可极大地提升读者的应用开发水平。 《Linux网络编程》作者长期致力于Linux网络程序设计,对Linux网络编程有独到的见解和深入的理解。《Linux网络编程》全面总结了他们对Linux网络编程的理解及大量的实践经验,充满了思想的火花。 一线技术人员全力打造,分享Linux技术盛宴! 《Linux网络编程》读者对象 想全面学习Linux网络编程的人员 想深入学习Linux网络编程的人员 想从事Linux嵌入式开发的人员 需要一本案头必备手册的程序员 大中专院校的相关学生 相关社会培训班的学员 其他Linux网络编程爱好者 获取PPT提示 《Linux网络编程》适合培训机构和大中专院校作为教材使用。为了方便教学,《Linux网络编程》专门配备了教学PPT。需要的老师请发电子邮件至bookservice2008@163.com索取。索取时请提供身份信息。 源代码下载提示 《Linux网络编程》所有源代码请到清华大学出版社的网站(www.tup.com-cn)上下载。请先在主页上的搜索栏中输入书名搜索到《Linux网络编程》页面,然后找到下载信息下载即可。
图书封面
图书标签Tags
无
评论、评分、阅读与下载