编辑推荐
《Linux/UNIX网络编程》在编写上力求由简到繁、由浅入深和循序渐进,读者不但可以学会程序设计的基本知识、设计思想和方法,还可以学会网络程序设计的通用方法与步骤。《Linux/UNIX网络编程》适合作为高等院校计算机及相关专业学生的教材,也可作为广大计算机爱好者、网络研究人员和网络程序开发人员的自学参考书。
《Linux/UNIX网络编程》配有免费电子教案,读者可以从中国水利水电出版社网站上下载,网址为:
培养学生实际动手能力,加大了实战检验的比重。教材体系合理,展现了高校计算机教育教学改革的最新科研成果。
采用“案例引导,任务驱动”的编写方式,便于激发学习兴趣。
教学资源丰富,提供电子教案和程序源代码。
内容简介
本书详细介绍了在UNIX/Linux系统下基于TCP/IP网络套接口的基本编程方法,包括迭代与并发服务器编写方法、进程与线程编程技术、I/O编程技术、IPv4与IPv6的兼容性、原始套接口、数据链路访问技术、广播与多播技术等。为满足教学实际需要,在本书最后一章给出了Socket基本编程、服务器与单客户的连接处理、多进程服务器模板、多线程编写模板和线程专用数据TSD实现模板5个实验指导。在本书编写过程中,编者参阅了国内外同类书籍及各类报刊杂志,将精华思想应用到教学实践中,形成的教学成果与体会反映在书中。在书中相关章节,编者都至少列举一个完整的例子来说明问题,学习者将书中的基础实验做好,再通过相关章节中的实验进行验证,就可以学习高级Linux/UNIX编程了。
本书在编写上力求由简到繁、由浅入深和循序渐进,读者不但可以学会程序设计的基本知识、设计思想和方法,还可以学会网络程序设计的通用方法与步骤。本书适合作为高等院校计算机及相关专业的教材,也可作为广大计算机爱好者、网络研究人员和网络程序开发人员的自学参考书。
内页插图
目录
序
前言
第1章 TCP/IP简介
1.1 概述
1.1.1 基本的C/S服务模型
1.1.2 OSI模型和TCP/IP四层结构
1.2 IP协议介绍
1.2.1 IP数据报的格式
1.2.2 IP地址
1.2.3 子网掩码(subnet mask)
1.3 TCP协议介绍
1.3.1 TcP连接的建立与终止
1.3.2 TcP状态转换图
1.4 UDP协议
1.5 端口号
1.6 本章小结
1.7 实战检验
理论巩固
第2章 套接字编程简介
2.1 套接字基础
2.2 套接字的类型
2.3 套接字地址结构
2.3.1 IPv4套接字地址结构
2.3.2 IPv6套接字地址结构
2.3.3 两种套接字地址结构的比较
2.3.4 通用套接字地址结构
2.4 套接字基本函数
2.4.1 字节排序函数
2.4.2 字节操纵函数
2.4.3 IP地址转换函数
2.4.4 isfdtype()函数
2.5 值结果参数
2.6 本章小结
2.7 实战检验
理论巩固
上机实战
第3章 基本TCP套接字编程
3.1 TCP套接字编程
3.1.1 socket()1函数
3.1.2 connect()函数
3.1.3 bind()函数
3.1.4 listen()函数
3.1.5 accept()函数
3.1.6 数据传输函数
3.1.7 close()函数
3.2 TCP套接字编程实例
3.3 服务器的3种异常情况
3.3.1 服务器主机崩溃
3.3.2 服务器主机崩溃后重启
3.3.3 服务器主机关闭
3.4 本章小结
3.5 实战检验
理论巩固
上机实战
第4章 基本UDP套接口编程
4.1 UDP套接字编程
4.1.1 recvfrom()函数
4.1.2 sendto函数
4.2 UDP套接字编程实例
4.3 UDP中对数据报的各项处理
4.3.1 数据报的丢失
4.3.2 验证收到的响应
4.3.3 服务器进程未运行
4.4 connect函数用于UDP
4.5 本章小结
4.6 实战检验
理论巩固
上机实战
第5章 并发服务器
5.1 服务器的分类
5.2 多进程并发服务器
5.2.1 进程基础
5.2.2 进程创建
5.2.3 进程终止
5.2.4 多进程并发服务器
5.2.5 多进程并发服务器实例
5.3 多线程服务器
5.3.1 线程基础
5.3.2 线程基础函数
5.3.3 给新线程传递参数
5.3.4 多线程并发服务器实例
5.3.5 线程安全函数
5.3.6 线程安全实例
5.3.7 用函数参变量实现线程安全性
5.4 本章小结
5.5 实战检验
理论巩固
上机实战
第6章名宇与地址转换编程
6.1 概述
6.2 域名系统
6.3 gethostbyname()函数
6.4 RES USE INET6解析器选项
6.5 gethostbyname2函数对IPv6的支持
6.6 gethostbyaddr()函数
6.7 uname()函数
6.8 gethostname函数
6.9 getservbyname和getservbyport函数
6.10 getaddrinfo、gai strerror和host—serv函数
6.11 freeaddrinfo函数
6.12 使用getaddrinfo的TCP和UDP
6.13 gemameinfo函数
6.14 gethostbyaddr实例
6.15 本章小结
6.16 实战检验
理论巩固
上机实战
第7章 IPv4和IPv6编程
7.1 IPv4客户与IPv6服务器
7.2 IPv6客户与IPv4服务器
7.3 IPv6 ADDRFORM套接口选项
7.4 IPv6地址测试宏
7.5 源代码的可移植性
7.6 本章小结
7.7 实战检验
理论巩固
上机实战
第8章 守护进程和inetd超级服务器
8.1 守护进程的原理
8.1.1 启动守护进程
8.1.2 输出守护进程消息
8.1.3 syslog函数
8.1.4 创建守护进程
8.1.5 以守护进程方式运行的时间服务器
8.2 inetd的工作原理
8.2.1 概念
8.2.2 工作流程
8.2.3 inetd处理并发
8.3 本章小结
8.4 实战检验
理论巩固
上机实战
第9章 I/O编程
9.1 I/O模型
9.2 select函数
9.3 shutdown函数
9.4 poll函数
9.5 使用select函数的TCP例子
9.6 高级的I/O编程
9.6.1 recv和send函数
9.6.2 recvmsg和sendmsg函数
9.7 非阻塞connect
9.8 ioctl函数
9.8.1 套接口操作
9.8.2 文件操作
9.8.3 接口配置
9.8.4 接口操作
9.8.5 ARP操作
9.8.6 路由表操作
9.9 本章小结
9.10 实战检验
理论巩固
上机实战
第10章 广播与多播编程
10.1 广播的概念
10.1.1 广播的原理
10.1.2 广播的示例
10.2 多播概念
10.2.1 多播与广播的比较
10.2.2 多播套接口选项
10.2.3 多播的实例
10.3 本章小结
10.4 理论与巩固
实战检验
上机实战
第11章 路由套接口编程
11.1 概念和数据链路套接口地址结构
11.2 sysctl操作
11.3 接口名和索引函数
11.4 本章小结
11.5 实战检验
理论与巩固
上机实战
第12章 信号量编程
12.1 信号的概念
12.2 信号的概念及常见信号介绍
12.2.1 signal函数
12.2.2 处理SIGCHLD信号
12.2.3 wait和waitpid函数
12.2.4 kill和raise函数
12.2.5 SIGPIPE信号
12.2.6 alarm和pause函数
12.2.7 sigprocmask函数
12.2.8 sigpending函数
12.2.9 sigaction函数
12.2.10 sigsecjmp和siglongjmp函数
12.2.1l sigsuspend函数
12.2.12 abort函数
12.2.13 system函数
12.2.14 sleep函数
12.3 例子:使用SIGIO的uDP回射服务器程序
12.4 本章小结
12.5 实战检验
理论巩固
上机实战
第13章 原始套接口与数据链路访问编程
13.1 原始套接口创建
13.2 原始套接口输出
13.3 原始套接口输入
13.4 原始套接字编程实例
13.4.1 实例1:拒绝服务攻击
13.4.2 实例2:ICMP包的构建、发送和接收
13.4.3 实例3:ping程序
13.5 数据链路层访问
13.5.1 BPF BSD分组过滤器
13.5.2 数据链路提供者DLPI
13.5.3 Unux的SOCK PACKET
13.5.4 分组捕获函数库libpcap
13.5.5 libpcap的库函数
13.5.6 数据链路层访问实例
13.6 本章小结
13.7 理论与巩固
实战检验
上机实战
第14章 实验指导
14.1 Socket基本编程
14.2 服务器与单客户的连接处理
14.3 多进程服务器模板
14.4 多线程编写模板
14.5 线程专用数据TSD实现模板
参考文献
精彩书摘
第1章 TCP/IP简介
1.1 概述
1.1.1 基本的C/S服务模型
网络编程是指编写的网络通信程序可以与网络上的其他程序进行通信。相互通信的网络程序通常可以分为两部分:客户端(Client)和服务器端(Server)。在图中给出了一个最简单的C/S服务模型。
在此模型中,客户和服务器之间采用的是一对一的关系,即客户一次只与一个服务器通信。当然一个客户同时与多个服务器进行通信,一个服务器同时与多个客户通信的情况也存在。以最常用到的使用Web浏览器浏览网页为例,IE浏览器在这里就是客户端,而远程提供信息的服务器就是服务器端,可以在5分钟内与许多不同的Web服务器通信;反之从服务器的角度来看,一台Web服务器也可以同时处理多个客户的请求。
对刚开始学习网络编程的读者来说,当第一次看到对C/S服务模型的介绍时,可能对它的理解就只是图中所描述的逻辑关系(一端享受服务,一端提供服务)而已,而并不是非常清楚用户数据和服务器的数据是怎么完成相互传递的。
前言/序言
随着计算机科学与技术的发展,计算机应用已经渗透到人们生活、工作和学习的方方面面,从而日益改变着人类传统的工作与生活方式。这就要求当代大学生在校学习期间就应储备更多的计算机专业知识。
为了大力推广计算机应用技术,更好地适应当前高等院校计算机教育模式的转变,我们组织一批学术水平较高、教学经验丰富、实践能力较强的学术带头人、科研人员和从事相关课程教学的主要骨干教师,对当前国内外高等院校计算机教育的教学现状与发展趋势、新形势下如何加强高等院校的教材建设等问题进行了深入的研究和探讨,并成立了“21世纪高等院校计算机科学规划教材”编委会,在明确了高校的人才培养模式、培养目标和课程体系的框架下,组织编写了本套“21世纪高等院校计算机科学规划教材”。
本套教材具有以下显著特色:
(1)充分体现了计算机教育教学第一线的需要。在编写之初,编委会经过大量的前期调研和策划,广泛地了解各高等院校的教学现状、市场需求,研讨了课程设置、课程体系,拟定了相关的知识单元和知识点,充分听取了教学第一线教师对计算机教育的意见,使本套教材充分反映了老师们的需求。
(2)各高校计算机院(系)院长(主任)对本套教材的建设十分重视,热情鼓励教师积极参与编写,充分展现了各个高校在计算机教育教学改革中取得的最新教研成果。
(3)本套教材在内容安排上既注重内容的全面性,也充分考虑了不同学科、不同专业对计算机知识的不同需求的特殊性。
(4)本套教材为了充分调动学生分析问题、解决问题的积极性,以及锻炼学生的实际动手能力,在全书中大力增加了实践检验所占的比重。
(5)力求实践性强是本套教材的一大特色,通过案例教学,将最急需、最实用的计算机知识传授给学生。
为进一步体现实用性,本配套教材在编写时配有课程学习辅导、实验指导、综合实训、电子教案等,以使教材向多元化、多媒体化发展,满足广大教师的教学需要。
总之,本套教材凝聚了众多长期工作在教学、科研第一线的教师及科研人员的教学科研成果、教学经验和智慧,在写法上体现了理论与实践相结合,相关的知识点讲解清晰、透彻,注重教学实践,力求科学实用,符合教学习惯。语言通俗易懂,内容丰富翔实,既有对基本理论及使用方法的透彻讲解,又注重实例与技巧的融会贯通。这套教材是新形势下计算机教育改革的一种新的尝试,“新”就会有许多值得修改的地方。我们期待广大读者对本套规划教材提出宝贵意见,以便进一步修订,使本套规划教材不断完善和提高。
Linux/UNIX网络编程/21世纪高等院校计算机科学规划教材 下载 mobi epub pdf txt 电子书 格式
评分
☆☆☆☆☆
好久没学新东西了,买来学习一下
评分
☆☆☆☆☆
人们给予教师太多的甚至是最崇高的美称:“教师是人类灵魂的工程师”、“教师是太阳底下最光辉的职业”……是啊,学高为师,德高为范,教师确实是一项崇高的职业。过去,传道、授业、解惑的精神为社会所尊崇,教师的“两袖清风”亦为民众所称道。
评分
☆☆☆☆☆
不错的书!!!值得买!!!!
评分
☆☆☆☆☆
评分
☆☆☆☆☆
评分
☆☆☆☆☆
自己学校的顶下,相对便宜
评分
☆☆☆☆☆
很好,适合零基础的初学者,最基本的程序实例都涵盖了。。
评分
☆☆☆☆☆
自己学校的顶下,相对便宜
评分
☆☆☆☆☆
书到用时方恨少,事非经过不知难。 养成自己随时随地都能学习的习惯,你的一生就会受用无穷。事业的发展,生活的丰富多彩,爱情的幸福美满,身心的健康快乐等等,总之,生活工作中我们时时处处都在学习当中。也许你仅仅把在学校,从书本上的学习当成学习了,但实际上那只是人生学习旅程的一部分。处处留心,培养对许多事物的兴趣爱好,你就会不断丰富自己的心灵,增长见识,对生命和生活的意义也就会更为理解。 其实,书对人的影响是逐步逐步积累的,就我的读书经验来说,一本书或是几本书对你影响深远那说明你读的书还不够多,古人云,开卷有益,就是说每本书里都有你值得吸收的东西,慢慢的,书读得多了,就会产生一种量变到质变的情况,书读得多了,才能有比较,才能升华。所谓:腹有诗书气自华呀! 高尔基说过:书籍是人类进步的阶梯。在我看来,读书很重要。读书可以让我们学到丰富的知识,可以让我们开阔眼界,还可以使人进步。 当我看到[SM]的标题时,我就决定买下来,[ZZ]的书每一本我都很喜欢,大家可以先看下这本书的简介![BJTJ][NRJJ][QY]从这里面就能看出这是一本多么优秀的书!所以我立马就下单购买了,前一天下午下单的,第二天上午就收到了,物流速度那是一个赞!快递员的态度也很好,到之前先短信通知的!书收到后打开包装,外面是有塑封的,看起来很赶紧全新的,赞一个!拆开塑封,纸张摸着很舒服,再赞一个,正版的就是不一样,很喜欢!在读书时,写读书笔记是训练阅读的好方法。 记忆,对于积累知识是重要的,但是不能迷信记忆。列宁具有惊人的记忆力,他却勤动笔,写下了大量的读书笔记。俗话说:“最淡的墨水,也胜过最强的记忆。”所以,俄国文学家托尔斯泰要求自己:身边永远带着铅笔和笔记本,读书和谈话的时候碰到一切美妙的地方和话语都把它记下来。读书的感觉真好: 当读书不是为了功名利禄,不是为了自我标榜增加谈资时,书便会给心态平和的读书人带来无法比拟的快乐。 若作者怀着一片真情在倾诉,那读者就是有幸的听众。读者与作者是世界上最平等的关系,不会有下对上的卑躬屈膝,也不会有宗教式的疯狂热烈。作者以真诚谱写文字,读者若真正读懂了作者,他们就成为了知己--读书更像是一种交谈,被吸引只因为心灵的魅力。正因为这种单纯与真诚,只要一个小小的空间,捧起一本好书就拥有了一分绝美的心境。 不论是读历史的厚重还是生活的轻松,生命的苦难还是自然的感悟,一首诗还是一个故事,当你的视线与文字相遇时,就是一种缘分。因为真心,没有所谓的深刻浅薄、智慧愚钝。正像黛玉所说的:“我是为了我的心。”读书也是为了自己的心。抛却了世俗的虚伪,生命充实,快乐。 闲坐无事时,总爱幻想坐拥书城的感觉。索性用我的画笔描绘幸福的未来:一个绝美的室外桃园,梧桐飘飞,满地金黄。一切爱书的人,可以在此读书品茗,谈书及书里书外的世界。于是,书使人心中有梦;于是,人间有爱。