Linux网络编程 第1版 pdf


-
Linux网络编程 第1版 pdf 免积分下载
Linux典藏大系 ⑥ ChinaUnix Linux 宋敬彬等编著 孙海滨 网络编程 清华大学出版社 北京 内容简介 Linux是目前最流行的开源操作系统,网络功能在 Linux下占有核心的地位。本书循序渐进地从应用 层到 Linux内核、从基本知识点到综合案例,向读者介绍如何在Lnux下进行网络程序设计。本书内容分 为4个部分:Linuⅸx程序设计基础部分、Uinⅸx用户空间网络编程部分、 Linux内核网络编程部分以及综合 案例部分。内容包含 Linux系统概述、 Linux编程环境、 Linux文件系统简介、 Linux下的进程和线程、TCPP 协议族、应用层网络服务程序、TCP编程、主机信息获取、数据⑩O复用、UDP编程、髙级套接字、套接 字选项、原始套接字、服务器模型、IPv6、 Linux内核网络部分结构及分布、 netfilter框架内报文处理。为 了方便读者学习,本书最后一个部分介绍了3个综合案例,包括应用层的Web服务器例子、简单的应用 层网络协议站例子和内核层网防火墙的例子。 本书适合广大的 Linux平台下的网络程序设计人员和大中专院校学生阅读,尤其是有一定 Linux基础 知识的编程技术人员。 本书封面贴有清华大学出版社防伪标签,无标签者不得销售 版权所有,侵权必究。侵权举报电话:010-6278298913701121933 图书在版编目(C|P)数据 Linuⅸ网络编程/宋敬彬,孙海滨等编著.一北京:清华大学出版社,2010.1 ( Linux典藏大系) ISBN9787-302-20717-7 I.L…Ⅱ.①宋…②孙…Ⅲ. Linux操作系统一程序设计Ⅳ.TP31689 中国版本图书馆CIP数据核字(2009)第139544号 责任编辑:夏兆彦 责任校对:徐俊伟 责任印制:王秀菊 出版发行:清华大学出版社 地址:北京清华大学学研大厦A座 hp:∥/www.tup.com.cn 邮编:100084 社总机:010-62770175 邮购:010-62786544 投稿与读者服务:010-62776969,c-service@tup.tsinghua.edu.cn 质量反馈:010-62772015,zhiliang@tup.tsinghua.edu.cn 印刷者:北京市世界知识印刷厂 装订者:三河市金元印装有限公司 经销:全国新华书店 开本:185×260印张:44.75字数:1113千字 版次:2010年1月第1版 印次:2010年1月第1次印刷 印数:1~5000 定价:79.00元 本书如存在文字不清、漏印、缺页、倒页、脱页等印装质量问题,请与清华大学出版社出版部联系 调换。联系电话:(010)62770177转3103产品编号:03437901 前言 Linuκ操作系统已经成为目前最流行的开源操作系统,在服务器、嵌入式系统有着广 泛的应用,并且逐步走入个人电脑的桌面操作系统。 Linux的网络程序设计在服务器领域、 嵌入式领域有着广泛的应用。例如Web服务器、P2P应用、嵌入式网络机顶盒、IPTV机 顶盒、手持设备等,上述产品大部分采用了开源的 Linux系统。因此,熟悉并且能够编写 网络程序代码,构建自己的网络架构程序是十分重要的。 本书全面地介绍了 Linux的网络编程技术,并以实例介绍了 Linux的应用层网络设计、 网络协议栈的实现原理和 Linux内核防火墙的技术。学完本书之后,读者可以有编写比较 复杂项目的本领。 本书的特点 1.循序渐进,由浅入深 为了方便读者学习,本书首先介绍 Linux的开发环境,然后介绍基本的网路程序设计 方法,再进行Linuⅸ内核的网络设计方法。最后,通过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/P的模型和多个主要的协议类型,并对IP地址的概念进行 了介绍,最后简单介绍了字节序的概念 第6章:介绍了用户空间的网络协议,包含HTTP协议、FTP协议、NFS协议和TELNET 协议,最后介绍了如何利用xned定义自己的网络服务。 第7章:重点介绍了TCP网络程序设计的基础知识,包括套接字地址结构、TCP网络 程序流程。对套接字编程的主要函数进行了介绍,并提供了一个简单的例子。 第8章:重点介绍了主机信息的获取,包含网络字节需转换、IP地址转换函数、套接 字类型判定、协议名称处理、DNS获取函数等。 第9章:介绍了 Linux下的IO复用,除了常用的 Linux下的IO函数,重点介绍了阻 塞IO模型、非阻塞⑩O模型、IoO复用、信号驱动⑩O模型和异步⑩O模型等⑩o模型。 第10章:介绍了UDP协议的编程框架并给出了多个例子。对UDP编程中经常遇到 的问题进行了介绍,并给出了问题解决的方案。 第11章:介绍了网络编程中的高级套接字,包含UNⅨX域协议编程、广播、多播和 数据链路层访问。本章给出了详细的例子代码介绍上述的概念。 第12章:介绍套接字选项,对套接字选项的含义进行了详细的介绍,还介绍了ioct0 控制选项和fntO控制选项。 第13章:介绍了原始套接字,包含原始套接字的创建、接收数据、发送数据等,对 经常使用原始套接字进行程序设计的洪水攻击进行了比较详细的介绍。 第14~章:介绍服务器的模型,对循环服务器、简单并发服务器、TCP高级并发服务 器、IO复用循环服务器进行了详细介绍。 第15章:简单介绍了IPv6协议,对IPV4和IPv6两种协议的不同点进行讲解,最后 介绍了如何使用IPv6的接口进行程序设计。 第16章:介绍了 Linux内核中的网络部分代码,以及网络在内核中的分布、软中断、 网络数据在内核中的流程。 第17章:介绍了 Linux内置防火墙 netfilter的报文处理,并介绍了其中的5个钩子和 内核模块程序设计框架。 第18章:介绍了一个web服务器Shttpd的综合案例。从需求、设计、实现等方面 I 前言 介绍了Web服务器实现的主要框架和实现的技术难点。 第19章:介绍了一个应用层网络协议栈SIP的综合案例,以及网络协议栈的分层结构 实现,协议栈包含了物理层、MAC层、I层、ARP层、UDP层等方面。 第20章:介绍了一个内核防火墙 SIPFW的综合案例。在 netfilter框架的基础上,实 现了一个可以进行用户交互的、可进行信息统计的、网络数据报文过滤型防火墙。 适合的读者 口包括 Linux网络开发工作人员; 口 Linux网络开发爱好者 大中专院校的学生; 口社会培训学生。 本书作者及编委会成员 本书由宋敬彬、孙海滨主笔编写。其他参与编写和资料整理的人员有武冬、郅晓娜、 孙美芹、卫丽行、尹翠翠、蔡继文、陈晓宇、迟剑、邓薇、郭利魁、金贞姬、李敬才、李 萍、刘敬、陈慧、刘艳飞、吕博、全哲、佘勇、宋学江、王浩、王康、王楠、杨宗芳、张 严虎、周玉、张平、张靖波、周芳、杨罡、于海滨、张晶杰、张利峰、杨景凤、陈锴、郑 剑锋、叶佩思、张涛、赵东彪、王双。在此一并表示感谢! 本书编委会成员有欧振旭、陈杰、陈冠军、顼宇峰、张帆、陈刚、程彩红、毛红娟、 聂庆亮、王志娟、武文娟、颜盟盟、姚志娟、尹继平、张昆、张薛。 虽然我们对书中所述的内容都尽量予以核实,并多次进行文字校对,但因时间所限, 可能还存在疏漏和不足之处,恳请读者批评指正。 编著者 目录 第1篇 Linux网络开发基础 第1章 Linux操作系统概述 1.1 Linux发展历史 ,,.,,,,,,,,,,, 111 Linux的诞生和发展 ,由,,,,,,,,,,,,,,,,,,·,,,,,,, 2 1.12 Linux名称的由来 12 Linux的发展要素 ““ 121UNIX操作系统 122Minⅸx操作系统…… 444 123 POSIX标准 ,,,,, 13 Linux与UNIX的异同 14操作系统类型选择和内核版本的选择 8,,,,,,,.,,,,,,,,,, ………………………………5 14.1常见的不同公司发行的 Linux异同 14.2内核版本的选择 1.5 Linux的系统架构 、aB,,,,,,,,,、,,,,·,,,,,,,,,,,,,,,,、,,,,, 1.5.1 Linux内核的主要模块… 66779 152 Linux的文件结构 1.6GNU通用公共许可证… 16.1GPL许可证的历史………………………………10 162GPL的自由理念 ………………10 163GPL的基本条款 …………11 164关于GPL许可证的争议…… ………………12 17 Linux软件开发的可借鉴之处 12 18小结 13 第2章 Linux编程环境… ………14 2.1 Linux环境下的编辑器 14 21.1vim使用简介… …………14 2.1.2使用vim建立文件………… …15 21.3使用vm编辑文本………………………………………16 214vim的格式设置 ………………………………………18 目录 21.5vim配置文件. vimrc. ………………19 216使用其他编辑器…… ,,,,,,,.,,,,,,,,,,,,,,,,,,、, 19 22 Linux下的GCC编译器工具集 ………………………………………………………19 22.1GCC简介 ……………………………………………………………………19 222编译程序的基本知识 21 223·单个文件编译成执行文件… 22 224编译生成目标文件 22 22.5多文件编译 226预处理 …………24 22.7编译成汇编语言 ………………24 228生成和使用静态链接库 25 229生成动态链接库 ………………………………26 2210动态加载库 …………29 2.211GCC常用选项 …………………………………31 2.2.12编译环境的搭建… ¨…………33 23 Makefile文件简介… ……34 231一个多文件的工程例子… ………………34 232多文件工程的编译……………36 2.3.3 Makefile的规则…………… …………………………37 234 Makefile中使用变量 ……………………39 23.5搜索路径 ………………………………………43 23.6自动推导规则 ,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,, ……4 2.37递归make 44 238 Makefile中的函数 ………46 24用GDB调试程序 ,,,,,,,,,,.,,,,,4,,,,、,,a,,,,,、,,,,,,,,,,·, ……………47 241编译可调试程序 ……48 24.2使用GDB调试程序 ………………………49 24.3GDB常用命令 ………52 244其他的GDB… ………"…………………………59 2.5小结 ,,,,.,,,,,,,,,,,,,,,·,,,,,,.,,,,,,,,,,,,,,,中 第3章文件系统简介 …………………61 31 Linux下的文件系统… ¨…………………………61 31.1Lnux下文件的内涵 ………61 31.2文件系统的创建… 62 31.3挂接文件系统… ………64 3.14索引节点 inode ………………65 3.15普通文件… …………………66 31.6设备文件… …………………6 31.7虚拟文件系统VFS …………………………68 目录 32文件的通用操作方法 32.1文件描述符…………………………………………………72 322打开创建文件 openc、 create函数 …12 323关闭文件 closeD函数 ,4 76 324读取文件read函数…………7 32.5写文件 write函数…………………………………………79 3.2.6文件偏移 IseekO函数………………890 327获得文件状态 state函数…………………83 328文件空间映射mmap0函数… ……85 329文件属性fntO函数…………………88 32.10文件输入输出控制 ioctl函数…… ……………………92 33 socket文件类型 ,,.,.,,..,,,,,,,,,,,,,主,,,,,未,,,,,,由非乐,, 93 34小结…………………………………………………93 第4章程序、进程和线程… …………94 4.1程序、进程和线程的概念………………………94 4.1.1程序和进程的差别…………………94 4.1.2 Linux环境下的进程 ……………9 4.1.3进程和线程 ……………………96 4.2进程产生的方式 …96 42.1进程号……… …………………96 4.2.2进程复制 forkO 4.2.3 system0方式…… ,,,,,,、,,,,,,,着,,,,·,,,、,,,,、,,,,,,,, 424进程执行 execO函数系列……………………………………………99 4.2.5所有用户态进程的产生进程init……………………………………100 4.3进程间通信和同步 ……101 4.3.1半双工管道… ·101 4.3.2命名管道 …107 4.3.3消息队列… …108 4.3.4消息队列的一个例子………………………………114 4.35信号量 ,,,,,,,,·,,,,,.,a,,,,,,,,,,,9,,,,,、,,,,,.着 …………………116 4.36共享内存 …………121 4.3.7信号 …………124 44 Linux下的线程 ,中,,,、,,,,,,,,,,,,,,中, ,,,,中.,, ………………127 44.1多线程编程实例……………………………………127 44.2 Linux下线程创建函数 pthread createD ……129 44.3线程的结束函数 pthread join和 pthread exito………129 4.44线程的属性………………………………………………………………130 44.5线程间的互斥………………………………………………132 44.6线程中使用信号量……………………133 II·

-
2019-10-17
-
2017-10-27
-
2017-10-11
-
2017-02-23
3.24MB
Linux网络编程.pdf
2010-02-15第一章概论 第二章 UNIX/Linux 模型 第三章进程控制 第四章进程间通信 第五章通信协议简介 第六章 Berkeley 套接字 第七章网络安全性 第八章 Ping 例程 第九章 tftp 例程
3.24MB
Linux网络编程 pdf
2010-07-03详细介绍了linux/unix网络编程的方方面面,对想系统的学习linux网络编程的会有很大帮助。
Linux网络编程(完美高清文字版).pdf下载_course
2020-12-12linux网络编程, 适合初学者学习网络编程 ,在linux环境下 相关下载链接://download.csdn.net/download/woaini2050/3956801?utm_source=
3.24MB
linux网络编程 PDF版
2010-02-10linux网络编程 PDF版 很好用的书
3.24MB
linux网络编程 清晰版pdf文件 十分好用
2010-01-12第一章 概论 .............................................................................................
3.24MB
linux网络编程.pdf
2010-09-06linux 下 c++ 网络编程入门,详细介绍了socket通信和tcp等
1.89MB
Linux网络编程(完美高清文字版).pdf
2011-12-22linux网络编程, 适合初学者学习网络编程 ,在linux环境下
3.25MB
免费下载:Linux网络编程.pdf
2016-07-15Linux网络编程.pdf免费下载
78KB
Linux 网络编程 pdf
2008-10-15本书详尽而细致地介绍了在Linux操作系统下进行网络编程所需要的各种知识,从基本的进程控制、通信到Berkeley套接字都有讲解。书中还穿插了大量的实例程序,并配以说明,更加方便读者的学习和理解。本书
linux网络编程pdf 写的很详细下载_course
2019-07-05现在学习网络呢,看见了好书,当然要分享了 相关下载链接://download.csdn.net/download/seazzn/2842654?utm_source=bbsseo
3.24MB
Linux网络编程高清PDF版
2010-09-21不要分数,经典的linux环境下的网络编程啊。
3.24MB
Linux网络编程电子书 pdf格式
2009-12-30Linux网络编程 第一章概论 ....................................................................................
144.98MB
Unix/Linux网络编程必看经典书籍完整高清pdf打包下载
2018-05-20UNIX网络编程卷1:套接字联网API(第3版) UNIX网络编程 卷2 进程间通信(第2版) UNIX环境高级编程(中文第三版)_扫描版_22.2M
116.40MB
LINUX网络编程_宋敬彬_孙海滨(pdf&代码).rar
2016-07-11很经典的linux网络编程书籍,希望朋友们慢慢看。 书是pdf格式的,另外还附上了代码。
3.24MB
网络编程教程,很好的一本写linux网络编程书,源码我也会上传的
2010-07-10第一篇 基础知识篇 第一章 文件系统和进程系统 1.1 文件系统 1.1.1 文件系统的总体结构 1.1.2 文件结构和目录结构 1.2 文件系统的相关编程 1.3 进程系统 1.3.1
3.24MB
linux网络编程(PDF中文)
2007-10-01详细介绍了linux/unix网络编程的方方面面,对想系统的学习linux网络编程的会有很大帮助。
3.25MB
Linux网络编程.pdf socket tcp udp
2017-09-18第一章 概论 .............................................................................................
3.26MB
Linux网络编程(pdf格式高清版)
2011-10-15Linux网络编程,pdf格式,高清,有目录
-
下载
中山大学《护理综合》03-16历年考研试卷(含答案).pdf
中山大学《护理综合》03-16历年考研试卷(含答案).pdf
-
下载
浙江科技学院《土力学》习题答案(全).pdf
浙江科技学院《土力学》习题答案(全).pdf
-
博客
二分查找边界问题
二分查找边界问题
-
学院
MySQL 管理利器 mysql-utilities
MySQL 管理利器 mysql-utilities
-
下载
中山大学《高等数学》大一下学期复习.pdf
中山大学《高等数学》大一下学期复习.pdf
-
博客
哈希表-------containsKey
哈希表-------containsKey
-
下载
浙江科技学院《砼结构结构设计》知识整理.pdf
浙江科技学院《砼结构结构设计》知识整理.pdf
-
博客
sql练习网站
sql练习网站
-
下载
岳阳职业技术学院《电力电子技术》试卷库(多套试卷且含答案).pdf
岳阳职业技术学院《电力电子技术》试卷库(多套试卷且含答案).pdf
-
下载
西南科技大学电子线路分析与实践试卷和答案.pdf
西南科技大学电子线路分析与实践试卷和答案.pdf
-
博客
2021-03-03
2021-03-03
-
博客
2021-03-03
2021-03-03
-
下载
浙江科技学院《钢结构原理》选择简单题汇总.pdf
浙江科技学院《钢结构原理》选择简单题汇总.pdf
-
学院
access应用的3个开发实例
access应用的3个开发实例
-
学院
牛牛量化策略交易
牛牛量化策略交易
-
博客
JavaScript中正则表达式的总结
JavaScript中正则表达式的总结
-
下载
西京学院《多媒体技术及应用》期末考试试卷.pdf
西京学院《多媒体技术及应用》期末考试试卷.pdf
-
博客
IT英语翻译
IT英语翻译
-
学院
MySQL 触发器
MySQL 触发器
-
学院
零基础极简以太坊智能合约开发环境搭建并开发部署
零基础极简以太坊智能合约开发环境搭建并开发部署
-
下载
浙江科技学院《概率论与数理统计》09-13历年期末考试试卷(含答案).pdf
浙江科技学院《概率论与数理统计》09-13历年期末考试试卷(含答案).pdf
-
下载
浙江大学《电力电子技术基础》期末考试试卷(含答案).pdf
浙江大学《电力电子技术基础》期末考试试卷(含答案).pdf
-
下载
浙江科技学院《结构力学》题库.pdf
浙江科技学院《结构力学》题库.pdf
-
下载
西南科技大学《电路分析》试题库(有答案).pdf
西南科技大学《电路分析》试题库(有答案).pdf
-
博客
只运行一次 runonce callonce 获取错误字符串
只运行一次 runonce callonce 获取错误字符串
-
下载
西南科技大学《自动控制原理》试题库(含答案).pdf
西南科技大学《自动控制原理》试题库(含答案).pdf
-
学院
MaxScale 实现 MySQL 读写分离与负载均衡
MaxScale 实现 MySQL 读写分离与负载均衡
-
学院
Unity RUST 逆向安全开发
Unity RUST 逆向安全开发
-
博客
【C++学习笔记1:C++对C的扩展】
【C++学习笔记1:C++对C的扩展】
-
学院
vue3从0到1-超详细
vue3从0到1-超详细