课件第章网络编程PPT课件.ppt_第1页
课件第章网络编程PPT课件.ppt_第2页
课件第章网络编程PPT课件.ppt_第3页
课件第章网络编程PPT课件.ppt_第4页
课件第章网络编程PPT课件.ppt_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第15章网络编程 C 高级编程 1 本章主要教学内容 简略介绍网络的基本知识 功能及协议 客户机 服务器的网络模型及其原理 网络应用程序的编写 客户端应用程序 服务器端应用程序 浏览器程序 电子邮件发送程序 2 15 1网络概述 计算机网络 地理位置不同 具有独立功能的多个计算机系统 通过通信设备和线路互相连接起来 使用功能完整的网络软件来实现网络资源共享的大系统 称为计算机网络 计算机网络从结构上可以分乘两部分 资源子网和通信子网 计算机网络的组成 3 15 1网络概述 计算机网络组成示意图 4 15 1网络概述 计算机网络结构示意图 5 资源子网 负责全网的数据处理以及向网络用户提供网络资源及网络服务等 一般由主计算机系统 终端 各种硬件和软件资源和数据资源等组成 通信子网 为资源子网提供信息传送服务 是支持资源子网上用户之间相互通信的基本环境 一般由通信控制器 集线器 调制解调器 网络通信媒体等组成 15 1网络概述 6 计算机网络的分类 按网络覆盖的地理范围可分为 局域网LAN localareanetwork 城域网MAN metropolitanareanetwork 广域网WAN wideareanetwork 15 1网络概述 7 其它分类有 按交换方式 按传输媒体等分类 按网络拓扑结构可分为 星型网络 总线型网络 环型网络 网格型网络 15 1网络概述 8 计算机网络功能主要有 数据通信 资源共享 共享硬件 软件 信息和知识等 分布式数据处理 提高可靠性 15 1网络概述 9 计算机网络的体系结构有两大类 对等网络和基于服务器的网络 对等网络的特点 在对等网络中 没有专用的服务器 网上所有的计算机地位是平等的 网上所有计算机都既是客户机又是服务器 每台计算机的用户自己决定将其计算机中的哪些数据共享到网络中去 没有负责整个网络管理的网络管理员 15 1网络概述 10 对等网络的优点 规模小 成本低 实现简单 15 1网络概述 基于服务器的网络的特点 网络中有专用服务器 或主机 网络中有客户机 或终端 有网络操作系统和网络管理员对网络进行统一管理 11 基于服务器的网络的优点 易于管理共享资源 安全性好 数据备份方便 网络规模基本不受限制 15 1网络概述 12 15 1网络概述 基于服务器的网络结构又分为 Client Server结构 胖客户机 Browser Server结构 瘦客户机 13 服务器Server 一台能够提供和管理可共享资源的计算机 客户机Client 能够使用服务器上的可共享资源的计算机 Client Server 客户机 服务器 结构 15 1网络概述 14 服务器需要运行某一种网络操作系统 例如WindowsServer2003 NovellNetware Unix等 通常有多台客户机连接到同一台服务器上 它们除了能运行自己的应用程序外 还可以通过网络获得服务器的服务 在这种以服务器为中心的网络中 一旦服务器出现故障或者被关闭 整个网络将无法正常运行 15 1网络概述 15 15 1 1客户机 服务器模型 客户机 服务器模型的工作原理 请求 通信设施 请求 响应 客户端 服务器端 16 15 1 1客户机 服务器模型 采用客户机 服务器模型的原因 不对等现象的存在 服务器端有丰富的资源 强大的运算能力 可存放大量的资源和信息 而客户端在软硬件的配置上相对薄弱 不可能也没有必要在每一台客户机上存放大量资源 为节约资源 提高利用率和使用效率 让服务器上的资源公有 让多个客户端共享这些资源 17 2 异步性客户机 服务器模式可以很好地支持异步性操作 方便远程通信的实现 15 1 1客户机 服务器模型 18 15 1 2网络协议 通俗地说 网络协议就是网络之间沟通 交流的桥梁 只有相同网络协议的计算机才能进行信息的沟通与交流 这就好比人与人之间交流所使用的各种语言一样 只有使用相同语言才能正常 顺利地进行交流 从专业角度定义 网络协议是计算机在网络中实现通信时必须遵守的约定 也就是通信协议 主要是对信息传输的速率 传输代码 代码结构 传输控制步骤 出错控制等作出规定并制定出标准 1 什么是网络协议 19 15 1 2网络协议 1984年 国际标准组织ISO公布了一个作为未来网络协议指南的模型 该模型被称为开放系统互联模型OSI 虽然完全遵守OSI的网络产品并没有成为网络市场上的标准 但OSI还是可以提供一个概念上和功能上的框架 可以作为学习网络知识的依据 作为网路实现的参考 2 ISO OSI参考模型 20 15 1 2网络协议 OSI参考模型采用分层结构 将所有互联的开放系统划分为功能上相对独立的七层 从最基本的物理连接到最高层次的应用 关于OSI参考模型的详细知识见附带文件1 21 15 1 2网络协议 虽然OSI参考模型的实际应用意义不是很大 但它对于理解网络协议内部的运作的确很有帮助 也为我们学习网络协议提供了一个很好的参考 在现实网络世界里 TCP IP协议栈获得了更为广泛的应用 22 TCP IP协议 TransmissionControlProtocol InternetProtocol 叫做传输控制 网际协议 又叫网络通讯协议 这个协议是Internet国际互联网络的基础 15 1 2网络协议 3 TCP IP协议模型 23 TCP IP协议是70年代中期美国国防部为其ARPANET广域网开发的网络体系结构和协议标准 以它为基础组建的INTERNET是目前国际上规模最大的计算机网络 正因为INTERNET的广泛使用 使得TCP IP成了事实上的标准 15 1 2网络协议 24 TCP IP是网络中使用的基本的通信协议 虽然从名字上看TCP IP包括两个协议 传输控制协议 TCP 和网际协议 IP 但TCP IP实际上是一组协议 它包括TCP IP UDP ICMP RIP TELNET FTP SMTP ARP TFTP等许多协议 这些协议一起称为TCP IP协议 关于TCP IP协议的基础知识见附带文件1 15 1 2网络协议 25 15 1 2网络协议 3 UDP协议 UserDataProtocol用户数据报协议UDP与TCP IP的差异 UDP直接利用IP协议进行UDP数据报的传输 UDP提供的是无连接的 不可靠的数据报投递服务 UDP常用于数据量少的数据传输 当使用UDP协议传输信息流时 用户负责解决排序 差错确认等问题 26 网络编程方法 15 2网络应用程序编写 15 2 1网络编程的概述 Socket WinSocket RPC 命名管道邮箱 27 1 什么是Socket 15 2 1网络编程的概述 一 Socket 套接字 Socket 最初是由加利福尼亚大学Berkeley分校为UNIX操作系统开发的网络通信接口 20世纪80年代初 加利福尼亚大学Berkeley将美国国防部高研署提供的TCP IP集成到Unix中 并很快开发了TCP IP应用程序接口 API 即Socket 套接字 接口 随着UNIX操作系统的广泛使用 套接字成为当前最流行的网络通信应用程序接口之一 28 15 2 1网络编程的概述 90年代初 由SunMicrosystems JSBCorporation FTPsoftware Microdyne和Microsoft等几家公司共同制定了一套标准 即WindowsSockets规范 它是BerkeleySockets的重要扩充 主要体现在它增加了一些异步函数和符合Windows消息驱动特性的网络事件异步选择机制 WindowsSockets规范是一套开放的 支持多种协议的Windows下的网络编程接口 目前实际应用中的WindowsSockets规范主要有1 1版和2 0版 其中1 1版只支持TCP IP协议 而2 0版支持多协议 并具有良好的向后兼容性 29 15 2 1网络编程的概述 Socket实际上是指一个通信端点 借助于它 用户所开发的Socket应用程序 可以通过网络与其它Socket应用程序进行通信 套接字sockets是支持TCP IP协议的网络通信的基本操作单元 可以将套接字看作不同主机间的进程进行双向通信的端点 它构成了在单个主机内及整个网际间的编程界面 30 15 2 1网络编程的概述 一般来说 跨机应用进程之间要在网络环境下进行通信 必须要在网络的每一端都要建立一个套接字 两个套接字之间可以是建立连接的 也可以是无连接的 并通过对套接字的 读 写 操作实现网络通信功能 像文件那样有打开 读 写 关闭的方式 31 15 2 1网络编程的概述 2 套接字Socket的分类 根据传输数据类型的不同 套按字可分为面向连接的字节流套接字 streamsockets 和面向无连接的数据报套接字 datagramsockets 两种类型 32 15 2 1网络编程的概述 提供没有记录边界的数据流 字节流不按记录定界 可以是双向的字节流 应用程序是全双工 可以通过套接字同时传输和接收 可依赖流传递有序的 不重复的数据 有序 指数据包按发送顺序送达 不重复 指一个特定的数据包只能获取一次 这能确保收到流消息 而流非常适合处理大量数据 1 字节流套接字 33 15 2 1网络编程的概述 在TCP IP协议簇中对应TCP协议 通信端点使用TCP对应的INTERNET地址互相连接 可保证按正确的顺序以及单一和可靠的地址传输数据 包长没有限制 信包的传输也不重复 34 15 2 1网络编程的概述 2 数据报套接字 数据报套接字支持双向数据流 此数据流不能保证按顺序和不重复送达 在TCP IP协议簇中对应UDP协议 通信端点使用UDP对应的INTERNET地址 不能保证所有数据都准确有序地到达目的地 不保证顺序性 可靠性和无重复性 35 15 2 1网络编程的概述 利用数据报服务可实现一些简单的网络服务 如网点检测程序PING 由于不建立连接 数据报协议的连接比字节流协议快 双方不需要互连 按固定的最大长度进行传输 因而适用于单个报文传输 或较小文件的传输 36 15 2 1网络编程的概述 3 套接字Socket的编程要点和过程 不论是哪种套接字编程 采用的都是客户机 服务器方式 其运作过程基本类似 字节流套接字的服务进程和客户进程 在通信前必须创建各自的套接字以建立连接 然后对相应的套接字进行 读 写 操作 实现信息的交换 37 15 2 1网络编程的概述 1 服务器进程创建套接字 服务进程总是先于客户进程启动 服务进程首先调用socket 函数创建自已端的一个字节流套接字 并提供三个参数 网络地址类型 一般取AF INEF 套接字类型 这里取SOCK STREAM 网络协议 缺省为TCP IP协议 对应参数为0 38 15 2 1网络编程的概述 给套接字地址变量赋初值 在生成套接字后 要用服务器的地址先对sockaddr in结构变量赋初值 sockaddr in在 usr include netinet in h中有定义 它只适用于INTERNET地址类型 含有INTERNET套接字地址类型 IP端口号 IP地址等信息 地址类型可取定为AF INET IP地址对服务器可取任意合法地址INADDR ANY IP端口号可由用户设定 但要注意主机字节顺序向网络字节顺序的转换 39 15 2 1网络编程的概述 给套接字命名 由socket 函数创建的套接字是没有名字的 所谓命名 就是用bind 函数将服务器地址捆绑到创建的套接字上 服务器进程准备接受来自客户机的连接请求 首先调用listen 函数 让服务器进程进入监听状态 然后调用accept 函数 准备接受客户机的连接信号 无连接请求时 服务进程被阻塞 40 15 2 1网络编程的概述 2 客户进程调用socket 函数创建自己端的套接字 给客户端的sockaddr in结构体变量赋值 地址类型仍可取AF INET 端口号和服务器方的端口号相同 欲连服务器的地址通过调用inet addr 转换得到 也可通过gethostbyname 函数将名字转换为指向hostent结构变量的指针 再将hostent结构变量的地址成员用bcopy 复制到sockaddr in结构变量上 41 15 2 1网络编程的概述 客户方调用connect 函数向服务进程发出连接请求 3 当连接请求到来后 被阻塞服务进程的accpet 函数生成一个新的字节流套接字 并返回客户机的sockaddr in结构变量 从而在服务器应用程序中用新的被赋予客户机地址的套接字同客户进程进行连接 然后向客户方返回接受信号 42 15 2 1网络编程的概述 4 一旦客户机的套接字收到来自服务器的接受信号 则表示客户机与服务器双方已实现连接 任一方均可向对方发送 也可接收对方发来的数据 这既可通过send recv 函数来实现 也可通过read write 函数来交换数据 43 15 2 1网络编程的概述 5 服务进程和客户进程可通过调用shutdown 和colse 关闭套接字上的所有发送和接收操作 撤销套接字并中断连接 整个运作过程用图表示如下 44 45 WinSocket同时支持字节流套接字和数据报套接字 面向连接的字节流套接字的时序图见图6 3 面向无连接的数据报套接字的时序图见图6 4 15 2 1网络编程的概述 4 WinSocket 46 1 Creat功能 建立套接字 函数原型及参数说明 P149 150 15 2 1网络编程的概述 5 MFC的CSocket类 2 Bind功能 建立套接字端口与网络地址连接起来 函数原型及参数说明 P150 47 15 2 1网络编程的概述 3 Listen功能 等待Socket请求 函数原型及参数说明 P149 150 4 Accept功能 取得对列上的第一个连接请求 并建立一个具有与Socket相同特性的套接字 函数原型及参数说明 P150 48 15 2 1网络编程的概述 5 Connect功能 向服务器提出一个连接请求 函数原型及参数说明 P150 6 Receive功能 从已连接的客户端或服务器端接收数据 函数原型及参数说明 P150 151 49 15 2 1网络编程的概述 7 Send功能 发送数据到已连接的客户端或服务器端 函数原型及参数说明 P151 8 其他函数 AttachDetachGetLastErrorShutDownOnAcceptCloseIsBlockingFromHandleCancelBlockingCall 50 1 利用CSocketFile类和Archive类实现 15 2 1网络编程的概述 15 利用CSocket类直接进行数据通信的两种方式 2 利用CSocket类的成员函数Receive Send ReceiveFrom Sendto Listen Accept等实现 51 15 2 1网络编程的概述 方法2 的实现步骤 服务器端 Construct Create Bind Listen Accept Send Close客户机端 Construct Create Connect Receive Close 52 创建应用程序的基本框架 15 2 2客户机端的编程实例 修改资源 增加一个类 实现网络功能 几个重要函数的详细代码 53 15 2 3服务器端的编程实例 创建应用程序的基本框架 修改资源 增加两个类 实现网络功能 相关函数的实现 54 15 2 4浏览器和MAPI的编程实例 1 浏览器的编程实例 URL 统一资源定位符 UniformResourceLocator URL是统一的 因为它们采用相同的基本语法 无论寻址哪种特定类型的资源 网页 新闻组 或描述通过哪种机制获取该资源 55 对于Intranet服务器或万维网服务器上的目标文件 可以使用 统一资源定位符 URL 地址 该地址以 http 开始 例如 15 2 4浏览器和MAPI的编程实例 56 URL的一般格式为 scheme host port path query fragment例如 80 WebApplication1 WebForm1 aspx name tomage 20 resumescheme 15 2 4浏览器和MAPI的编程实例 57 host 主机 指定的服务器的域名系统 DNS 主机名或IP地址 port 端口号 整数 可选 省略时使用方案的默认端口 如http的默认端口为80 path 路径 由零或多个 符号隔开的字符串 一般用来表示主机上的一个目录或文件地址 15 2 4浏览器和MAPI的编程实例 58 query 查询 可选 用于给动态网页 如使用CGI ISAPI PHP JSP ASP ASP NET等技术制作的网页 传递参数 可有多个参数 用 符号隔开 每个参数的名和值用 符号隔开 fragment 信息片断 字符串 用于指定网络资源中的片断 例如一个网页中有多个名词解释 可使用fragment直接定位到某一名词解释 15 2 4浏览器和MAPI的编程实例 59 MAPI MessagingApplicationProgrammingInterface MAPI的编程实例 15 2 4浏览器和MAPI的编程实例 MAPI是一种消息体系结构 可以使多个系统进行信息交换 也可以发送和接收电子邮件 MAPI可以在不同的操作系统上进行通信 也可以在多个硬件平台之间实现跨越 60 15 2 4浏览器和MAPI的编程实例 微软和其它一些公司开发了MAPI 可使Windows应用程序接入到从MicrosoftMail到NovellMHS的多种消息系统 但是 MAPI仅限于在日常工作的水平上工作 即感知邮件的应用程序 它可在网络上交换邮件与数据 61 VisualC 中的CDocument类提供了对MAPI的支持 但只提供发送消息和文件的功能 其他功能如检索等还没有实现 发送消息和文件的功能是通过使用OnFileSendMail 函数和对应的用户接口处理函数OnUpdateFileSendMail 函数实现的 15 2 4浏览器和MAPI的编程实例 62 15 3DHTML DHTML DynamicHyperTextMarkupLanguage动态超文本标记语言 很多网页 如新浪 上有一个重要界面特性 当浏览者将鼠标指针移动到页面导航条上时 会动态地弹出一个菜单 在该菜单中移动鼠标 所指向的菜单项变为红色显示 如果将鼠标指针移出菜单所在范围 则菜单自动隐藏 如果将鼠标指针移动到导航条上另外一个区域 则会弹出另外一个菜单 63 15 3DHTML 这种效果非常类似于Windows应用程序的特性 即通过图形化的界面为用户提供尽可能多的功能 实际上 采用这种方式可以使同一个页面上包含更多的信息 对于庞大的网络站点来说十分有用 要实现这种效果 单纯依靠HTML和JavaScript已经无法实现 必须采用新的技术 这就是动态HTML 所谓动态HTML DynamicHTML 简称DHTML 其实并不是一门新的语言 它只是HTML CSS和客户端脚本的一种集成 64 15 3DHTML 使用DHTML技术 可使网页设计者创建出能够与用户交互并包含动态内容的页面 实际上 DHTML使网页设计者可以动态操纵网页上的所有元素 甚至是在这些页面被装载以后 利用DHTML 网页设计者可以动态地隐藏或显示内容 修改样式定义 激活元素以及为元素定位 DHTML还可使网页设计者在网页上显示外部信息 方法是将元素捆绑到外部数据源 如文件和数据库 上 65 15 3DHTML 可见 DHTML技术是一种非常实用的网页设计技术 实际上 DHTML早已广泛地应用到了各类大大小小的网站中 成为高水平网页必不可少的组成部分 所有这些功能均可用浏览器完成而无需请求Web服务器 同时也无需重新装载网页 这是因为一切功能都包含在HTML文件中 随着对网页的请求而一次性下载到浏览器端 66 15 3DHTML 一 是HTML 也就是页面中的各种页面元素对象 它们是被动态操纵的内容 二 是CSS CSS属性也是动态操纵的内容 从而获得动态的格式效果 三 是客户端脚本 例如JavaScript 它实际操纵Web页上的HTML和CSS DHTML建立在原有技术的基础上 可分为三个方面 67 15 3DHTML CSS就是一种叫做样式表 stylesheet 的技术 也有的人称之为层叠样式表 CascadingStylesheet 在主页制作时采用CSS技术 可以有效地对页面的布局 字体 颜色 背景和其它效果实现更加精确的控制 只要对相应的代码做一些简单的修改 就可以改变同一页面的不同部分 或者页数不同的网页的外观和格式 什么是CSS 68 15 3 1DHTML对象模型 什么是HTML HTML HyperTextMark upLanguage 即超文本标记语言 是WWW的描述语言 设计HTML语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起 形成有机的整体 人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上 我们只需使用鼠标在某一文档中点取一个图标 Internet就会马上转到与此图标相关的内容上去 而这些信息可能存放在网络的另一台电脑中 69 15 3 1DHTML对象模型 HTML的结构包括头部 Head 主体 Body 两大部分 其中头部描述浏览器所需的信息 而主体则包含所要说明的具体内容 HTML是一种ASCII标记语言的格式 HTML基本代码见P166 HTML只不过是组合成一个文本文件的一系列标签 HTML标签通常是英文词汇的全称 如块引用 blockquote 或缩略语 如 p 代表Paragragh 70 但它们的与一般文本有区别 因为它们放在单书名号里 故Para

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论