欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    windows网络编程基础.ppt

    • 资源ID:6523756       资源大小:348.50KB        全文页数:55页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    windows网络编程基础.ppt

    Windows网络编程技术,南昌大学何俊,一.学习目的 培养网络软件开发技术人员 二.总学时:64 课时安排:理论32,上机32三.理论学习内容 1 windows 网络编程基础 2 VC+6.0 3 基于winsock的网络编程 4 单机资源共享的应用编程 5 高级网络编程(MFC),四.上机实验内容(共包括16个实验,每个2个学时)实验一 熟悉网络编程环境实验二 创建Windows窗口应用程序实验三 创建菜单程序、对话框程序实验四 TCP套接字编程实验五 UDP套接字编程实验六 利用互斥对象实现线程同步实验七 利用事件对象实现线程同步实验八 利用关键代码段对象实现线程同步实验九 多线程聊天程序编程实验十 基于消息的异步套接字编程实验十一 基于剪贴板的进程通信实验十二 基于匿名管道的进程通信实验十三 基于命名管道的进程通信实验十四 基于邮槽的进程通信实验十五 动态链接库的创建与应用实验十六 基于MFC编写一个网络应用程序,参考书,1.windows网络编程技术胡鸣,科学技 术出版社.2008.62.精通windows sockets孙海民,人 民邮电出版社.2008.73.windows网络编程第二版,琼斯,杨 合庆译,清华大学出版社。,考核方式,作业考勤,第一章 Windows网络编程基础,南昌大学,本章内容,1.1 Windows网络编程基础知识 1.1.1 常用的网络应用实例 1.1.2 网络应用的特点 1.1.3 网络编程基础知识1.2 Windows环境下的应用程序 1.2.1 应用程序的形态 1.2.2 应用程序的运行环境 1.2.3 应用程序的开发环境VC+1.3 Windows环境下的网络应用程序 1.3.1 网络应用程序的系统支持 1.3.2 网络应用程序运行环境的问题 1.3.3 网络应用程序的应用模型,1.1 Windows网络编程基础知识,常用的网络应用实例目的:开发网络应用程序,提供互联网服务浏览器:浏览新闻、文献检索、论坛、在线收看影视等电子邮件:可非即时收发。如foxmail、outlook等文件传输服务:可共享软件资源。如BT。个人聊天:QQ、MSN、聊天室网络游戏:网络围棋、三国等网络安全:防火墙、杀毒软件,如瑞星等网络应用:在线考试等,网络应用的特点,1)网络服务至少需要2台以上计算机支持;2)每台计算机运行的网络应用进程与该计算机上的其它进程共享该机器上的系统资源;3)网络应用进程之间的通信由标准化的I/O接口(如网卡)以及其它连接硬件支持;4)网络进程通信,由计算机网络协议(如TCP/IP)支持。5)具有虚拟设备的功能。必须建立标准的通信规范。,1.1.3 网络编程基础知识,A,B,协议,协议,端口号,端口号,IP地址,IP网络中每台主机都必须有一个唯一的IP地址;IP地址是一个逻辑地址;因特网上的IP地址具有全球唯一性;32位,4个字节,常用点分十进制的格式表示,例如:,协议,为进行网络中的数据交换(通信)而建立的规则、标准或约定。(=语义+语法+规则)不同层具有各自不同的协议。,网络的状况,多种通信媒介有线、无线不同种类的设备通用、专用不同的操作系统Unix、Windows 不同的应用环境固定、移动不同业务种类分时、交互、实时用户业务的延续性不允许出现大的跌宕起伏。它们互相交织,形成了非常复杂的系统应用环境。,网络异质性问题的解决,网络体系结构就是使这些用不同媒介连接起来的不同设备和网络系统在不同的应用环境下实现互操作性,并满足各种业务需求的一种粘合剂,它营造了一种“生存空间”任何厂商的任何产品、以及任何技术只要遵守这个空间的行为规则,就能够在其中生存并发展。网络体系结构解决异质性问题采用的是分层方法 把复杂的网络互联问题划分为若干个较小的、单一的问题,在不同层上予以解决。就像我们在编程时把问题分解为很多小的模块来解决一样。,ISO/OSI七层参考模型,OSI(Open System Interconnection)参考模型将网络的不同功能划分为7层。,应用层,表示层,物理层,会话层,传输层,网络层,数据链路层,处理网络应用,数据表示,主机间通信,端到端的连接,寻址和最短路径,介质访问(接入),二进制传输,ISO/OSI七层参考模型,通信实体的对等层之间不允许直接通信。各层之间是严格单向依赖。上层使用下层提供的服务 Service user;下层向上层提供服务 Service provider。,对等通信示例,对等层通信的实质,对等层实体之间虚拟通信。下层向上层提供服务,实际通信在最底层完成。,OSI各层所使用的协议,应用层:远程登录协议Telnet、文件传输协议FTP、超文本传输协议HTTP、域名服务DNS、简单邮件传输协议SMTP、邮局协议POP3等。传输层:传输控制协议TCP、用户数据报协议UDP。TCP:面向连接的可靠的传输协议。UDP:是无连接的,不可靠的传输协议。网络层:网际协议IP、Internet互联网控制报文协议ICMP、Internet组管理协议IGMP。,数据封装,一台计算机要发送数据到另一台计算机,数据首先必须打包,打包的过程称为封装。封装就是在数据前面加上特定的协议头部。,数据,数据,协议头,数据封装,OSI参考模型中,对等层协议之间交换的信息单元统称为协议数据单元(PDU,Protocol Data Unit)。OSI参考模型中每一层都要依靠下一层提供的服务。为了提供服务,下层把上层的PDU作为本层的数据封装,然后加入本层的头部(和尾部)。头部中含有完成数据传输所需的控制信息。这样,数据自上而下递交的过程实际上就是不断封装的过程。到达目的地后自下而上递交的过程就是不断拆封的过程。由此可知,在物理线路上传输的数据,其外面实际上被包封了多层“信封”。但是,某一层只能识别由对等层封装的“信封”,而对于被封装在“信封”内部的数据仅仅是拆封后将其提交给上层,本层不作任何处理。,TCP/IP模型,TCP/IP起源于美国国防部高级研究规划署(DARPA)的一项研究计划实现若干台主机的相互通信。现在TCP/IP已成为Internet上通信的工业标准。TCP/IP模型包括4个层次:应用层传输层网络层网络接口,TCP/IP与OSI参考模型的对应关系,7654321,OSI参考模型,TCP/IP模型,端口,按照OSI七层模型的描述,传输层提供进程(应用程序)通信的能力。为 了标识通信实体中进行通信的进程(应用程序),TCP/IP协议提出了协议端口(protocol port,简称端口)的概念。端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序通过系统调用与某端口建立连接(binding)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都通过该端口输出。端口用一个整数型标识符来表示,即端口号。端口号跟协议相关,TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立。端口使用一个16位的数字来表示,它的范围是065535,1024以下的端口号保留给预定义的服务。例如:http使用80端口。,套接字(socket)的引入,为了能够方便的开发网络应用软件,由美国伯克利大学在Unix上推出了一种应用程序访问通信协议的操作系统调用socket(套接字)。socket的出现,使程序员可以很方便地访问TCP/IP,从而开发各种网络应用的程序。随着Unix的应用推广,套接字在编写网络软件中得到了极大的普及。后来,套接字又被引进了Windows等操作系统,成为开发网络应用程序的非常有效快捷的工具。套接字存在于通信区域中。通信区域也叫地址族,它是一个抽象的概念,主要用于将通过套接字通信的进程的共有特性综合在一起。套接字通常只与同一区域的套接字交换数据(也有可能跨区域通信,但这只在执行了某种转换进程后才能实现)。Windows Sockets只支持一个通信区域:网际域(AF_INET),这个域被使用网际协议簇通信的进程使用。,套接字模型,网络字节顺序,不同的计算机存放多字节值的顺序不同,有的机器在起始地址存放低位字节(低位先存),有的机器在起始地址存放高位字节(高位先存)。基于Intel的CPU,即我们常用的PC机采用的是低位先存。为保证数据的正确性,在网络协议中需要指定网络字节顺序。TCP/IP协议使用16位整数和32位整数的高位先存格式。所以在网络中不同主机进行通信时,要统一采用网络字节顺序。,客户机服务器模式,在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式(client/server),即客户向服务器提出请求,服务器接收到请求后,提供相应的服务。客户机/服务器模式的建立基于以下两点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作用。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是基于客户机/服务器模式的TCP/IP。,客户机服务器模式,客户机/服务器模式在操作过程中采取的是主动请求的方式。首先服务器方要先启动,并根据请求提供相应的服务:打开一个通信通道并告知本地主机,它愿意在某一地址和端口上接收客户请求。等待客户请求到达该端口。接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一个新的进程(或线程)来处理这个客户请求。新进程(或线程)处理此客户请求,并不需要对其它请求作出应答。服务完成后,关闭此新进程与客户的通信链路,并终止。返回第二步,等待另一客户请求。关闭服务器。客户方:打开一个通信通道,并连接到服务器所在主机的特定端口。向服务器发服务请求报文,等待并接收应答;继续提出请求。请求结束后关闭通信通道并终止。,1.2 Windows环境下的应用程序,1.2.1 应用程序的形态1.2.2 应用程序的运行环境1.2.3 应用程序的开发环境VC+,1.2.1 应用程序的形态,早期以.com,.exe保存,PE(Portable executable)格式是微软公司针对Windows NT,Windows 95和Win32s系统设计的Windows下可执行的二进制文件格式。,如何实现可执行文件在内存中运行?,要解决两问题:字节顺序、内存地址映射字节顺序:分little endian,big endian 两种。例如:从内存地址0 x0000开始存放 0 x0000 0 x12 0 x0001 0 x34 0 x0002 0 xab若根据big endian,则读出的是0 x1234ab。例如Motorola系列的CPU、.bmp,.gif若根据little endia,则读出的是0 xab3412。例如Intel86系列的CPU、.jpeg,如何实现可执行文件在内存中运行?,内存地址映射:涉及文件地址、虚拟地址、相对虚拟地址3个概念。文件地址:用十六进制编辑器看到的地址。虚拟地址:程序中使用的地址。段:偏移量 对32位系统,偏移量232 4G 这个4G空间实际是程序与操作系统共享。当PE被载入内存,称为“模块”。则从该模块句柄地址开始映射。相对虚拟地址:指相对于PE载入点的内存偏移。,在内存中装载PE可执行文件的主要步骤?,1.PE装载器首先检查DOS MZ head里的PE偏移量。2.PE装载器检查PE head的有效性。3.遍历PE head后面的段表,读取各个段的信息,采用文件映射的方法将段映射到4G字节的空间PE装载器在内核中创建进程对象,如果有多线程则创建主线程对象以及其它内容。PE装载器搜索引入表,装载动态链接库。PE装载器指向内存中PE文件首部地址处的代码,应用程序准备执行。,应用程序如何变成一种可运行状态?,典型的软件安装步骤:1.拷贝软件本身;2.拷贝必要的动态链接库;3.将用户设置、选项、DLL系统注册信息写入注册表;4.建立桌面快捷方式;5.其它选项,如删除临时文件、解密信息等。一般,可用Windows Installer构建安装软件,如setup.exe,1.2.2 应用程序的运行环境,应用程序进入系统运行过程要执行应用程序,操作系统内核要做两个方面的工作:进程管理、系统调用,如何应对多任务?,应用程序的运行环境,进程管理:(虚线框中)涉及CPU、内存、外存3个资源。管理进程的就绪、运行、阻塞3个状态。系统调用:(由内核执行)当各个应用程序需要系统资源时,即与阻塞态有关时出现的。二者对计算机系统的稳定与维护非常重要,故操作系统划分为用户态、核心态。一个应用程序的运行是用户态进程与核心态内核交替在CPU运行。(图1.7),用户态组件,系统支持进程:例如服务管理器、WIndows登陆、本地安全验证服务、会话管理器。服务进程:例如sevices.exe、spool32.exe、svchost.exe等。环境子系统:用于向应用程序提供操作系统功能调用接口。包括Win32、POSIX、OS/2 1.2。五种类型应用程序:Win32、Windows3.1、MS-DOS、POSIX、OS/2。如任务管理器。,核心态组件,包含了最低级的操作系统功能:例如线程调度、中断、异常调度、多处理器同步等。提供了执行体用来实现高级结构的一组例程和基本对象。执行体包含基本操作系统服务,如对象管理、安全控制、虚拟内存管理、进程和线程管理、本地过程调用、I/O进程以及进程间通信。I/O管理程序。图形引擎。即图形函数硬件抽象层。将其它程序与硬件区分开。,1.2.3 应用程序的开发环境VC+,应用程序的生成过程,VC+概念,VC+:就是遵循C/C+语法规则,经过多层嵌套功能调用(每层调用就完成一次功能与数据封装)的组合扩展,实现应用程序功能。例如:系统调用就是对一序列内核操作的数据对象与功能封装,库函数调用又是对系统调用和其它操作的数据抽象与功能封装。MFC就是采用SDK方法封装Win32应用的大部分关联函数,提供Windows窗口图形接口模板。MSDN(Microsoft developer network)提供了大量的编程信息,编程需要考虑的几个问题,影响性能因素:功能调用的层次。层次越低,开销越小,但复杂性越高。效率:支持静态与动态链接库两种软件复用技术,提高效率。其中,动态链接库节约内存空间资源。,同步与异步I/O,系统调用中影响最大的是I/O操作。操作系统提供同步与异步I/O操作。在同步I/O时,应用程序处于阻塞状态,在异步I/O时,处于非阻塞状态,可提高效率。(如图1.13)为避免异步I/O操作完成时刻的不确定性以及同步I/O的阻塞问题,操作系统在基于同步I/O基础上提出了两种应用程序的编程机制进程与线程。如果I/O阻塞和没有阻塞的任务涉及较大程序代码,则应创建新的进程,否则只需在进程中创建新的线程。,1.3 Windows环境下的网络应用程序,1.3.1 网络应用程序的系统支持1.3.2 网络应用程序运行环境的问题1.3.3 网络应用程序的应用模型,1.3.1 网络应用程序的系统支持,Windows NT网络体系结构,网卡:负责实现链路层MAC子层的功能;网卡驱动程序:负责实现数据链路层的LLC子层、网络层、运输层的功能。NDIS:底层物理设备的网络编程接口。TDI:为上层数据与NDIS库函数调用提供一个公用接口。3个高级网络编程接口:NetBios(用户级)Sockets(应用级)Winpcap(直接),网络应用程序的系统支持,NDIS(网络驱动程序接口规范):1)基于X86平台,提供统一调用实现驱动程序一级的开发。2)提供基于物理设备的网络编程与开发,应用于网络安全以及网络协议相关部分的开发。TDI(传输驱动程序接口):定义连接与非连接的协议低级接口,为所有各种驱动程序提供一个公用接口。(相当于中级驱动),3种编程接口:NetBios、Sockets、直接网络编程,NetBios(network basic input/output system)用户级编程接口,对应会话层与运输层。库函数嵌套层次高,提供了用户模式的DLL。1985年,IBM创建了NetBios扩展接口。Sockets应用级编程接口,对应运输层。如WinSock是TCP/IP的编程接口。直接网络编程可对运输层以下的网络层、链路层网络协议直接操作。如Winpcap针对网络数据包捕获的编程接口。,1.3.2 网络应用程序运行环境的问题,并发环境异构环境网络I/O访问机制与效率可靠性与服务机制,并发环境,并发:或者是多任务在多处理器上、或者是任务多分支时间共享。对应用程序而言,进入的网络请求可以看作是并发现象。一般采用多进程、多线程编程。在多线程与多进程应用中,系统调用与函数必须是可重入的。,并发环境,可重入函数:可由多于一个任务并发使用,而不必担心数据错误。一般或者使用局部变量或者在使用全局变量时保护数据。相反,不可重入函数不能由超过一个任务共享。例:/codeStatic int tmp Void swap1(int*x,int*y)/不可重入函数 tmp=*x;*x=*;*y=tmp;Void swap2(int*x,int*y)/可重入函数 int tmp;tmp=*x;*x=*y;*y=tmp;原因:操作系统会在swap1还没有执行完的情况下,切换到另一个线程中,而且,可能再次调用swap1,导致出错。,异构环境,异构性:表现在字节顺序、字的长度、字节定界3个方面。1)字节顺序:例如HP UNIX等采用big endian,而DOS,WINDOWS采用little endian。TCP/IP采用big endian。2)字的长度:例如32位与64位操作系统中,long int长度不一样。而且进程空间大小不一样。3)字节定界:不同平台结构体和共同体打包的方式不同。例如很多系统中结构体 struct unsigned char a;int b 长度是8(按int定界),而不是5(按字节定界)。网络协议中一般采用4字节定界。,网络I/O访问机制与效率,网络I/O需要考虑寻址方式、功能调用方式、数据传递机制的选择3个因素。1)寻址方式包括:底层网络寻址(网络驱动程序)互联网虚拟网络寻址(IP由系统配置)进程寻址(网络应用代码)2)功能调用方式包括:同步(阻塞,用多进程与多线程解决)异步(非阻塞)3)数据传递机制包括:缓冲与非缓冲 有状态与无状态(有状态通信减少通信)应用程序之间的数据流分配和数据编码格式。,可靠性与服务机制,包括2种可靠机制:1)请求确认应答确认 发送给接收发送请求接收内核给发送内核返回确认接收给发送应答发送内核给接收内核返回确认。(A-B-B-A)2)请求应答确认 发送给接收发送请求接收给发送应答发送内核给接收内核确认。(A-B-A)面向连接与无连接服务性能比较(P20表1.1),1.3.3 网络应用程序的应用模型,根据网络设计程序的发展,网络编程可划分为联机多用户应用、对等网络应用、Client/Server网络应用、RPC远程调用、Browser/Server网络应用、分布式网络应用6个应用模型。1)联机多用户应用结构:由一台主机和多个联机终端所组成,用户从终端登陆到主机上进行操作。编程思想:单机编程,涉及多进程与多线程。例如单机版游戏网。2)对等网络应用结构:以网络为中心分组交换网,网络的每一个结点都有独立的处理能力,结点之间通过协议通信。特点:每台计算机既是服务提供者,又是服务的使用者。但提供的服务能力有限,故网络规模较小。编程思想:是真正意义上的网络程序设计。例如QQ聊天软件。3)Client/Server网络应用结构:服务器提供运算能力,客户机负责I/O。编程思想:适应大型网络程序设计。例如数据库系统。,网络应用程序的应用模型,4)RPC远程调用原理:当主机A进程调用主机B的一个过程时,主机A的进程被挂起,在主机B上执行被调用的过程。信息以参数的形式传递到被调用进程,并将结果返回调用进程。编程思想:不需要处理网络通信过程,仅仅需要调用本地过程,由该过程与远程主机通信;RPC主要依靠客户机上的客户代理与服务器上的服务器代理实现(图1.16)。5)Brows/Server网络应用特点:用户界面通过WWW浏览器实现,主要任务在服务器上实现。包括数据层、应用层、表示层。编程思想:用户仅仅需要在应用层Web服务器上进行程序设计,不需要在数据层、表示层编程。6)分布式网络应用特点:多台计算机协同完成一项计算任务。,

    注意事项

    本文(windows网络编程基础.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开