网络应用程序设计教程
作者 : 高屹 沙俊星
出版日期 : 2008-08-20
ISBN : 7-111-24848-4
定价 : 36.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 304
开本 : 16开
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书以前导课程(计算机网络原理、程序设计语言和数据结构)为基础,有针对性地讲授网络应用程序的设计与开发方法及技术,介绍必要的理论知识,强调网络应用程序设计的实践环节。从计算机操作系统的角度看,开发网络应用程序有三个可供使用的应用编程接口(API):应用组件API、套接字API和硬件设备API。本书重点介绍基于前两个API来开发网络应用程序,其中,第1章到第12章讲解基于ASP.NET的程序设计,第13章到第17章讲解基于Socket的程序设计。教师在授课时可以根据课程要求、教学学时、学生的专业方向和就业需求的具体情况进行相应的取舍。
  本书强调网络编程的实用性,重点培养学生的网络编程能力,坚持理论和知识点为提高学生实践动手能力服务的原则,在讲述基本的理论之后,辅以大量的由易到难的实例,使学生“知其然”,也“知其所以然”,促使他们更多地思考和创新,循序渐进地提高网络应用程序的设计和编程能力。
  授课教师可联系 “教学支持联系人”获取电子教案,读者也可以从机工新阅读网站下载本书的源代码。

图书特色

图书前言

计算机网络教学改革势在必行  
  我国高校的计算机网络教学可以说是从研读Andrew STanenbaum所著的《计算机网络》(第1版)起步的。30年多来,计算机网络的教学环境已经发生了翻天覆地的变化:计算机网络走出了科学家的象牙塔,走向了人类社会生活的方方面面,走进了寻常百姓家;计算机网络课程从只由少数专家研究变成了各高校普遍开设的一门专业基础课程,从研究生课堂走向了本科生、大专生的课堂;学习该课程的专业从通信和计算机专业扩展到了信息技术(IT)相关的许多专业;学习计算机网络知识的目的不再仅限于研究,而是为了获取职业技能,甚至是获取现代社会的基本生活技能;社会对计算机网络的需求也越来越具体,越来越多样化;教学条件从纸上谈兵转变为能够在因特网上或实验室中进行实地实验;优秀的网络教材不断推出,教学方法也从开放系统互联的七层结构的自下而上变成了因特网的五层结构的自顶向下……另一方面,由于计算机网络技术的飞速发展,可作为教学内容的知识不断增加。面对这一系列变化,我们认为计算机网络教学也应当进行相应的改革。
目前,我国高校各个专业的各个教学层次都用同一种(类)教材,都在学习同一门“计算机网络”课程,这种现状是否会导致计算机网络教学的内容存在过于宽泛、针对性不强的问题,已经不能满足计算机网络教学的现实需要了呢?我们可以反思一下:通过短短的60学时,要求学生既要搞清复杂的网络原理,又要学会网络编程;既要能够配置、操作各种网络应用服务器,又能够设计、实施网络系统;既要通晓网络安全原理,又要掌握网络管理的技能,这种美好的愿望是否具有可行性呢?事实说明,这种教学方式由于教学时间的限制往往造成学生囫囵吞枣:网络原理没有深入搞清,网络编程只会皮毛,网络应用一知半解,网络技能略知一二……
事实上,不同的专业对于计算机网络知识有不同的要求。有些专业要求对网络进行一般性了解,而有些专业则要求深入掌握网络的各个方面知识;有些专业要求掌握网络软件编程技能,而有些专业则要求设计实现各种规模的网络系统。
  上述教学实践都在提示我们应当对计算机网络包括的知识内容进行认真梳理和归纳分类,再根据不同专业的需求,设计有针对性的网络课程体系。
  计算机网络课程群
  计算机网络课程是一门公认较难学好的课程,其具有的实践性、应用性、复杂性强等特点在现阶段愈发凸现出来。究其原因,首先是计算机网络本身就是通信与计算机交叉的学科,它要求学生具有较宽广和深入的知识结构与基础。其次是计算机网络领域发展速度极快,因此相关知识和教学内容更新速度也很快。通过选用国内外优秀教材,不断改革教学方法和教师的不懈努力基本上能够应对。第三是网络实验教学目前尚处于探索阶段,国内外高校在教学思路、教材选择、实验设备配备等方面仍是仁者见仁、智者见智。
  多年来,根据社会对计算机网络的需求以及在教学实践中总结出的规律,并与多所国内著名高校讲授网络课程的老师及网络产业界的精英们探讨后,我们将原来的一门计算机网络课程拓展为计算机网络课程群,该课程群包括如下六门课程:计算机网络原理、互联网应用与维护、网络应用编程、网络安全、网络工程设计和网络管理。
 “计算机网络原理”课程主要讲授因特网的基本工作原理和重要协议。课程内容包括:因特网结构、常用应用层协议、套接字、可靠数据传送原理、TCP拥塞控制和流量控制方法、路由器、路由选择算法和IP协议、分组交换机、共享多址技术和以太网。上述内容是计算机网络中最重要和基本的内容,适合所有IT相关专业的学生学习。
 “互联网应用与维护”是一门以实际动手为主的课程,主要讲授因特网上的各种常用应用服务器的配置、维护和使用。课程内容包括配置与使用DNS、Web、FTP、Telnet、DHCP、Oracle、媒体、打印等服务器,管理用户账户、备份文件和数据、监视服务器性能及使用一些重要的网络应用软件。该课程能够培养学生的网络实践能力,加深对网络原理的理解,适合大多数专业的学生学习。
 “网络应用编程”课程主要讲授基于网络的应用程序的编程开发方法,重点学习基于Web编程方法(NET或Java)和基于套接字软件编程方法。随着网络的普及,网络应用程序开发技能变得极为重要,学生不能仅限于学习C语言、数据结构、C++和数据库,还需要一门学习如何将这些知识结合起来用于解决实际问题的课程。本课程适合计算机、软件、网络等专业的学生学习。
 “网络安全”课程主要介绍网络攻击和防护的基本原理与手段。课程内容包括网络安全的机密性、鉴别、完整性和可用性,密码学概述,防火墙原理,常用网络攻击方法,访问控制,审计,防范黑客程序和相关技术发展动向。这门课程适合大多数专业的学生学习。
 “网络工程设计”课程主要介绍基于系统集成的思想设计小型、中型和大型网络系统的方法。课程内容包括系统集成模型、制作网络设计文档、分析网络需求、选用网络基本构件、设计逻辑网络、规划IP地址、设计物理网络、网络测试与排错等。本课程适合网络工程等专业的学生学习。
 “网络管理”课程主要讲授网络管理的基本概念和基于因特网简单网络管理协议(SNMP)的原理和一些常用的网络管理工具。课程内容包括SNMP的管理模型、因特网管理的基本概念(命名树、SMI、MIB)、抽象语法记法ASN1、SNMPv1SMI、SNMPv2SMI、SNMPv1、SNMPv2、远程监视MIB、SNMPv3和其他进展。本课程主要适合网络工程等专业学生学习。
  关于这套丛书
从2002年起,解放军理工大学根据上述思路对计算机网络课程进行了全面的教学改革。实践的结果表明,计算机网络课程群的建立及网络知识分类施教的做法提高了学生们的学习积极性,实践能力明显增强,前期学习的基础理论得到了巩固。
  为了促进我国计算机网络教育转型,创新网络教学达到学以致用、以用促学的目标,满足高校网络教学的需求,解放军理工大学和机械工业出版社共同策划了这套系列教材,系统地介绍解放军理工大学在网络教学方面的探索成果,共同推进计算机网络的教学改革。该丛书由我国计算机网络界前辈、德高望重的谢希仁教授领衔,由一批活跃在计算机网络研究和教学前沿的中青年网络专家结合自己的教学和科研实践来编写教材。
  目前,本丛书计划包括以下教材:
  1)当今世界最负盛名、由Kurose和Ross两位教授撰写的网络教材《计算机网络:自顶向下方法(第4版)》(本科教学版),适用于“计算机网络原理”课程。
  2)由陈鸣教授编写的《网络工程设计教程:系统集成方法(第2版)》,适用于“网络工程设计”课程。
  3)高屹副教授和沙俊星讲师编撰的《网络应用程序设计教程》,适用于“网络应用编程”课程。
  4)由陈鸣教授编撰的《计算机网络实验教程:从原理到实践》(普通高等教育“十一五”国家级规划教材、教育部2007年度普通高等教育精品教材),用于各门课程的网络实验。
  此外,有关“互联网应用与维护”、“网络管理”、“网络安全”等网络教材也在编撰之中。欢迎国内外从事网络教学的教师、学者们加入到本丛书的编撰队伍中来,我们共同将这套丛书打造成反映我国计算机网络教学理念的系列精品教材。
计算机网络是目前最具发展活力的领域之一,计算机网络及其实验的教学也需要不断创新,才能跟上时代发展的需要。对于这样一个极具挑战性的研究课题,本丛书可能只是回答了计算机网络某个发展阶段的一些问题,肯定还存在着这样或那样的不足和缺点,我们欢迎大家批评指正、提出建议或申报丛书选题。联系方式:mingchen@public1pttjscn。

  丛书编委会

  本书的新颖之处
  如果把整个计算机技术比作一座大城市,那么计算机网络技术就是该城市中四通八达的高速公路和高架桥,基于网络的程序设计就是激发这座城市活力的设计蓝图。因为在今天几乎任何有应用前景的应用程序都必须与网络相联系,而编制网络应用程序就是亲手建造一座座匠心独具、风格各异的建筑物。随着社会信息化程度的提高、网络技术的快速发展和网络应用的大量涌现,社会对能够设计建设蓝图的设计师的需求量越来越大。因此,在教学和科研实践中,我们认识到,对高等院校中的计算机科学与技术以及软件工程等专业的学生,只是教授C语言、C++语言、Java语言、软件工程等课程是不够的,还需要有针对性地向学生传授基于网络的应用程序的设计与开发技能,并进行从理论到实践的强化训练。
  从计算机操作系统的角度看,开发网络应用程序有三个应用编程接口(API)可供使用,自上而下是分别是应用组件API、套接字API和硬件设备API。应用组件API是指基于成熟框架、面向企业应用的程序设计平台(如ASPNET、J2EE等),这些平台工具通常具有功能丰富的组件。这些组件往往屏蔽了有关网络的大量技术细节,使得网络应用程序的设计开发较为容易,但也会限制某些特殊功能的实现。不过一旦熟练掌握它们的开发方法,就能够高效地设计实现基于网络的应用程序。不过要掌握这些编程工具平台也需要花费相当多的时间和精力。
  套接字API是指基于TCP/IP Socket接口。基于套接字API当然可以编制出任何基于网络的应用程序,包括应用组件API。因此,从设计开发网络应用程序的效率来讲,学习这部分内容通常对编制多线程服务器程序更为有用和关键。
  基于硬件设备API进行编程是指基于某种硬件(如以太网)接口标准设计开发某种特殊用途的应用,例如高效地捕获和分析以太网帧,以用于网络安全和网络管理应用目的。
  这些教学内容有些不属于高校的教学内容,有些则在某些学校是分属于两门甚至更多门课程的教学内容。我们在教学与科研实践中发现,掌握这些知识内容对于计算机、网络工程、软件工程等专业的学生进入社会并获得重用非常重要。因此,我们根据计算机系网络课程体系研究的总体思考,觉得非常有必要设置这样一门课程,而且将这些内容放在一门课程中,由教师们根据培养目标进行取舍讲授,教学效果可能会更好。这样的教学安排不仅可以使学生们“知其然”,也会使他们“知其所以然”,促使他们更多地思考和创新。当然,对于学时数不那么多的学校,也可以只进行应用组件API方面的课堂教学,而将后面章节全部留给学生自学或留待他们作为以后工作中的参考。
  本书的组织形式
  本书的第1章到第11章讲解的是基于ASPNET的程序设计。之所以选择讲授ASPNET而不是J2EE,只是从学生们入门难度和今后可能的应用考虑。本书的第12章到第17章讲解基于Socket的程序设计,如果教师感到这部分内容对学生用处不那么大,或教学学时不够,完全可以根据具体情况进行取舍,这不会影响教学内容和知识体系的完整性。
  为了便于教师教学,也便于学生理解,本书坚持了理论和知识点为提高学生实践动手能力服务的原则。在讲述基本的理论之后,辅以大量的由简到难的实例,学生们循序渐进地掌握相关知识,为今后编制丰富多彩的网络应用程序奠定了坚实的基础。因此,本书无论是作为工具书还是作为教科书都是相当合适的。
  本书中涉及的所有源代码可以从华章网站(http://wwwhzbookcom)下载。
  需要具备的知识
  在阅读本书之前,要求读者对TCP/IP网络有基本了解,并要掌握一些C/C++和数据结构的基础知识,现在高校计算机及相关专业大都会开设这些课程。许多青年人通过自学也能够掌握这些基础知识。
  致谢
  本书的编写得到了很多专家的指导与帮助,也借鉴了很多教材的内容组织形式,作者在此深表谢意。特别要感谢陈鸣教授一直鼓励作者们按自顶向下方式写作这本书,多次与作者们讨论本书的提纲及其教学思路,并审阅了部分章节的内容,提出了很多具体的改进意见。在本书出版之际,我们非常感谢陈鸣教授一直以来给予我们的鼓励、支持与帮助!解放军理工大学计算机系网络工程教研室的赵洪华、许博等教师使用本书的初稿进行了本科、大专和短训班等不同层次的教学,为本书提出了许多宝贵的改进意见。作者也用本书初稿对多个班级进行了为期两年的本科教学,非常感谢在此期间对本课程教学各方面提出改进意见的解放军理工大学指挥自动化学院和计算机系的领导。学习“网络应用编程”课程的学生们对本课程的投入和热情,也是我们不断修改和完善本书初稿的动力。我们的教学实践证明,开设本课程的目的已经达到,本书作为“网络应用编程”课程的教材也有了良好的开头。从这种意义上讲,本书是集体智慧和创作的结晶。其中,高屹副教授编写了本书第1章到第11章;沙俊星讲师编写了第12章到第17章。
  开设这样一门课程本身就是一种挑战,还需要时间来检验和改进。例如,本书不排除今后选用J2EE来代替ASPNET作为应用组件API的基本案例来设计开发基于网络的应用程序的可能。限于作者的水平和时间,本书肯定会有这样那样的不足之处,我们希望教师及各位读者给予批评指正,以期不断提高本书的编写质量。作者的电子邮箱是:njgaoyi@yahoocomcn和shajunxing@163com。

  作者
  20084

封底文字

本书以前导课程(计算机网络原理、程序设计语言和数据结构)为基础,有针对性地讲授网络应用程序的设计与开发方法及技术,介绍必要的理论知识,强调网络应用程序设计的实践环节。从计算机操作系统的角度看,开发网络应用程序有三个可供使用的应用编程接口(API):应用组件API、套接字API和硬件设备API。本书重点介绍基于前两个API来开发网络应用程序,其中,第1章到第12章讲解基于ASP.NET的程序设计,第13章到第17章讲解基于Socket的程序设计。教师在授课时可以根据课程要求、教学学时、学生的专业方向和就业需求的具体情况进行相应的取舍。
  本书强调网络编程的实用性,重点培养学生的网络编程能力,坚持理论和知识点为提高学生实践动手能力服务的原则,在讲述基本的理论之后,辅以大量的由易到难的实例,使学生“知其然”,也“知其所以然”,促使他们更多地思考和创新,循序渐进地提高网络应用程序的设计和编程能力。
  授课教师可登录华章网站下载电子教案,读者也可以从华章网站下载本书的源代码。

图书目录

丛书前言
前言
教学建议
第1章网络应用基础
11HTML标记语言
111HTML的基本概念
112HTML元素
12CSS
121什么是CSS
122CSS的使用
123选择器
124CSS文件样例
13JavaScript语言
131JavaScript语言概况
132JavaScript基本数据
类型
133函数与事件驱动
习题第2章ASPNET开发入门
21开发环境的建立
211安装Visual Studio 2005
212安装MSDN Library
22Visual Studio集成开发环境
介绍
221系统的启动
222第一个应用程序
223集成开发环境介绍
习题第3章C#语言基础
31数据类型
311值类型
312引用类型
32C#基本操作
321变量和常量
322装箱和拆箱
323控制台输入和输出
324字符串处理
33流程控制
331条件语句
332循环语句
333异常处理语句
34类和结构
341定义类和结构
342定义属性
343定义索引器
344方法重载
345使用ref和out类型
参数
346抽象类和接口
习题第4章ASPNET基本控件
41控件概述
411Web控件的分类
412ASPNET服务器控件常用的
属性和事件
413事件驱动与事件处理
42一般控件
421Label控件
422Button控件
423TextBox控件
424HyperLink控件
43选择控件
431CheckBox控件
432RadioButton控件
433ListBox控件
434DropDownList控件
44Panel控件
45图片控件
451Image控件
452ImageMap控件
习题第5章ASPNET高级控件
51Calendar控件
511Calendar控件基本
概念
512改变Calendar控件的
外观
513对Calendar控件编程
52FileUpload控件
53Wizard控件
54PlaceHolder控件
55AdRotator控件
56验证控件
561RequiredFieldValidator
562ValidationSummary控件及
验证结果判断
563CompareValidator控件
564RangeValidator控件
565RegularExpressionValidator
控件
566CustomValidator控件
习题第6章构建网站
61ASPNET网站综述
611解决方案和项目
612ASPNET网站布局
613网站的组成文件
614网站文件类型
615关于代码隐藏
616网站的状态
62Response对象
63Request对象
631Request对象概述
632Params属性
633ServerVariables属性
64Application对象
65Session对象
66Server对象
67构建网站示例
习题第7章应用ADONET编程
71ADONET概述
72使用ADONET连接到
数据库
721连接到SQL Server
数据库
722连接到Oracle数据库
723通过OLE DB连接到
数据库
724连接数据库实例
73使用Command对象和DataReader
对象
74使用DataAdapter对象和DataSet
对象
75使用Command对象直接修改
数据库
习题第8章Web数据访问
81数据源控件
811数据源控件概述
812SqlDataSource控件
82GridView控件
821常用属性和事件
822GridView控件的基本
应用
823通过GridView控件修改
数据
824多个GridView和多个
SqlDataSource相互
配合
825对GridView控件编程
83DataList控件
831常用属性和事件
832DataList控件的
基本应用
833对DataList控件编程
834进一步对DataList
控件编程
84DetailsView控件
841常用属性和事件
842DetailsView控件的
示例
习题第9章数据绑定
91嵌入式代码与简单数据
绑定
911嵌入式代码块
912嵌入式表达式
913ASPNET表达式
914简单数据绑定
92一般控件的数据绑定
921与DataSource对象
绑定
922绑定到ADONET的查询
结果
93Web数据控件的数据绑定
94Repeater控件
习题第10章其他内容
101母版页
102导航
103用户控件
1031用户控件的使用
1032NewsUCascx用户
控件
1033ActiveOpascx用户
控件
104网站的部署
习题第11章“畅想网络学院”
111系统总体设计
1111功能设计
1112数据库设计
1113示例数据库的建立
1114网站项目的创建
112系统体系结构的设计与实现
1121数据访问层的实现
1122业务逻辑层的实现
1123表示层的实现
113系统登录
114系统菜单的实现
115Cookie的使用
1151什么是Cookie
1152写入Cookie
1153读取Cookie
1154删除Cookie
116修改口令
117教师管理
118学生管理
119课程管理
1110我的课程
习题第12章Windows Socket API
简介
121Socket概念
122WinSock的初始化和终止
1221WSAStartup()
1222WSACleanup()
123错误检查和控制
124创建和释放套接字
1241socket()
1242closesocket()
125面向连接的协议(TCP)
1251bind()
1252listen()
1253accept()
1254connect()
1255send()
1256recv()
126无连接协议
1261sendto()
1262recvfrom()
127域名解析
1271gethostbyname()
1272gethostbyaddr()
1273getservbyname()
习题ⅩⅦ第13章TCP Socket编程
131TCP协议简介
1311概述
1312三次握手
1313TCP选项
1314终止连接
1315TCP状态转换图
1316观察分组
132编程模式
133实例
习题第14章UDP Socket编程
141UDP协议简介
142编程模式
143实例
习题第15章原始套接字编程
151简介
152ICMP
153Ping示例
154Traceroute示例
习题第16章Winpcap编程
161网络数据包捕获的原理
162数据包捕获程序的结构
163获取网络接口列表
164获取设备的高级信息
165打开一个接口并捕捉流量
166Winpcap包含的定义和输出
函数
1661结构体
1662宏定义
1663自定义类型
1664与Unix兼容的函数
1665Winpcap扩展函数
习题第17章多线程下的Socket编程
171基本概念
1711Win32进程
1712Win32线程
1713Win32核心对象
1714C运行时库
172线程控制
1721线程函数
1722创建线程
1723终止线程
1724挂起与恢复线程
1725睡眠
173线程通信
1731全局变量
1732事件
1733临界区
1734互斥
1735信号量
1736互锁访问
1737可等待定时器
174网络服务器设计模式
1741循环式服务器
1742并发式服务器
1743反应式服务器
1744异步I/O和前摄式
服务器175实例
1751HTTP协议基础
1752HTTP消息格式
1753简单的HTTP
服务器
习题
参考文献

教学资源推荐
参考读物推荐
作者: (美)Fred Long Dhruv Mohindra Robert C. Seacord Dean F. Sutherland David Svoboda 著
作者: 袁林 尹皓 陈宁 编著
作者: 刘海波 沈晶 岳振勋 等编著
作者: [英]邓肯·麦格雷戈(Duncan McGregor),[英]纳特·普莱斯(Nat Pryce) 著