C+网络编程高级编程.ppt
《C+网络编程高级编程.ppt》由会员分享,可在线阅读,更多相关《C+网络编程高级编程.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1515章章 网络编程网络编程C+高级编程高级编程本章主要教学内容本章主要教学内容l 简略介绍网络的基本知识、功能及协议。简略介绍网络的基本知识、功能及协议。l 客户机客户机/服务器的网络模型及其原理。服务器的网络模型及其原理。l 网络应用程序的编写:客户端应用程序、网络应用程序的编写:客户端应用程序、服务器端应用程序、浏览器程序、电子邮件服务器端应用程序、浏览器程序、电子邮件发送程序。发送程序。15.1 15.1 网络概述网络概述计算机网络计算机网络:地理位置不同、具有独立功能的多个计算机系地理位置不同、具有独立功能的多个计算机系统,通过通信设备和线路互相连接起来,使用功能统,通过通信设
2、备和线路互相连接起来,使用功能完整的网络软件来实现网络资源共享的大系统,称完整的网络软件来实现网络资源共享的大系统,称为计算机网络。为计算机网络。计算机网络从结构上可以分乘两部分:计算机网络从结构上可以分乘两部分:资源子资源子网和通信子网。网和通信子网。计算机网络的组成:计算机网络的组成:15.1 15.1 网络概述网络概述 计算机网络组成示意图计算机网络组成示意图15.1 15.1 网络概述网络概述 计算机网络结构示意图计算机网络结构示意图 资源子网:资源子网:负责全网的数据处理以及向网络用户负责全网的数据处理以及向网络用户提供网络资源及网络服务等。一般由主计算机系统、提供网络资源及网络服务
3、等。一般由主计算机系统、终端、各种硬件和软件资源和数据资源等组成。终端、各种硬件和软件资源和数据资源等组成。通信子网:通信子网:为资源子网提供信息传送服务,是支为资源子网提供信息传送服务,是支持资源子网上用户之间相互通信的基本环境。一般由持资源子网上用户之间相互通信的基本环境。一般由通信控制器、集线器、调制解调器、网络通信媒体等通信控制器、集线器、调制解调器、网络通信媒体等组成。组成。15.1 15.1 网络概述网络概述计算机网络的分类:计算机网络的分类:按网络覆盖的地理范围可分为:按网络覆盖的地理范围可分为:局域网局域网LANLAN(local area networklocal area
4、network)城域网城域网 MANMAN(metropolitan area networkmetropolitan area network)广域网广域网WANWAN(wide area networkwide area network)15.1 15.1 网络概述网络概述其它分类有:按交换方式、按传输媒体等分类其它分类有:按交换方式、按传输媒体等分类按网络拓扑结构可分为:按网络拓扑结构可分为:星型网络星型网络 总线型网络总线型网络 环型网络环型网络 -网格型网络网格型网络15.1 15.1 网络概述网络概述计算机网络功能计算机网络功能主要有:主要有:数据通信数据通信资源共享:共享硬件、软
5、件、信息和知识等资源共享:共享硬件、软件、信息和知识等分布式数据处理,提高可靠性分布式数据处理,提高可靠性15.1 网络概述网络概述计算机网络的体系结构计算机网络的体系结构有两大类:有两大类:对等网络和基于服务器的网络对等网络和基于服务器的网络对等网络的特点:对等网络的特点:在对等网络中,没有专用的服务器,网上所有在对等网络中,没有专用的服务器,网上所有 的计算机地位是平等的;的计算机地位是平等的;网上所有计算机都既是客户机又是服务器;网上所有计算机都既是客户机又是服务器;每台计算机的用户自己决定将其计算机中的哪每台计算机的用户自己决定将其计算机中的哪 些数据共享到网络中去;些数据共享到网络中
6、去;没有负责整个网络管理的网络管理员;没有负责整个网络管理的网络管理员;15.1 网络概述网络概述对等网络的优点:对等网络的优点:规模小,成本低,实现简单规模小,成本低,实现简单15.1 15.1 网络概述网络概述基于服务器的网络的特点基于服务器的网络的特点:网络中有专用服务器(或主机)网络中有专用服务器(或主机)网络中有客户机(或终端)网络中有客户机(或终端)有网络操作系统和网络管理员对网络进行统一管理有网络操作系统和网络管理员对网络进行统一管理基于服务器的网络的优点基于服务器的网络的优点:易于管理共享资源易于管理共享资源 安全性好安全性好 数据备份方便数据备份方便 网络规模基本不受限制网络
7、规模基本不受限制 15.1 15.1 网络概述网络概述15.1 15.1 网络概述网络概述基于服务器的网络结构又分为:基于服务器的网络结构又分为:Client/ServerClient/Server结构(胖客户机)结构(胖客户机)Browser/ServerBrowser/Server结构(瘦客户机)。结构(瘦客户机)。服务器服务器ServerServer:一台能够提供和管理可共享资源的一台能够提供和管理可共享资源的计算机。计算机。客户机客户机ClientClient:能够使用服务器上的可共享资源的能够使用服务器上的可共享资源的计算机。计算机。Client/ServerClient/Serve
8、r(客户机(客户机/服务器)结构服务器)结构15.1 15.1 网络概述网络概述 服务器需要运行某一种网络操作系统,例如服务器需要运行某一种网络操作系统,例如Windows Server 2003Windows Server 2003、Novell NetwareNovell Netware、UnixUnix等。等。通常有多台客户机连接到同一台服务器上,它通常有多台客户机连接到同一台服务器上,它们除了能运行自己的应用程序外,还可以通过网络们除了能运行自己的应用程序外,还可以通过网络获得服务器的服务。获得服务器的服务。在这种以服务器为中心的网络中,一旦服务器在这种以服务器为中心的网络中,一旦服务
9、器出现故障或者被关闭,整个网络将无法正常运行。出现故障或者被关闭,整个网络将无法正常运行。15.1 15.1 网络概述网络概述15.1.1 15.1.1 客户机客户机/服务器模型服务器模型客户机客户机/服务器模型的工作原理:服务器模型的工作原理:请求请求 通信设施通信设施请求请求 响应响应 客户端客户端 服务器端服务器端15.1.1 15.1.1 客户机客户机/服务器模型服务器模型采用客户机采用客户机/服务器模型的原因:服务器模型的原因:(1)(1)不对等现象的存在不对等现象的存在:(2)(2)服务器端有丰富的资源,强大的运算能服务器端有丰富的资源,强大的运算能力,可存放大量的资源和信息。而客
10、户端在力,可存放大量的资源和信息。而客户端在软硬件的配置上相对薄弱,不可能也没有必软硬件的配置上相对薄弱,不可能也没有必要在每一台客户机上存放大量资源。为节约要在每一台客户机上存放大量资源。为节约资源,提高利用率和使用效率,让服务器上资源,提高利用率和使用效率,让服务器上的资源公有,让多个客户端共享这些资源。的资源公有,让多个客户端共享这些资源。(2)(2)异步性异步性 客户机客户机/服务器模式可以很好地支持异步性操作,服务器模式可以很好地支持异步性操作,方便远程通信的实现。方便远程通信的实现。15.1.1 15.1.1 客户机客户机/服务器模型服务器模型15.1.2 15.1.2 网络协议网
11、络协议 通俗地说,网络协议就是网络之间沟通、交流通俗地说,网络协议就是网络之间沟通、交流的桥梁,只有相同网络协议的计算机才能进行信息的桥梁,只有相同网络协议的计算机才能进行信息的沟通与交流。这就好比人与人之间交流所使用的的沟通与交流。这就好比人与人之间交流所使用的各种语言一样,只有使用相同语言才能正常、顺利各种语言一样,只有使用相同语言才能正常、顺利地进行交流。地进行交流。从专业角度定义,网络协议是计算机在网络中从专业角度定义,网络协议是计算机在网络中实现通信时必须遵守的约定,也就是通信协议。主实现通信时必须遵守的约定,也就是通信协议。主要是对信息传输的速率、传输代码、代码结构、传要是对信息传
12、输的速率、传输代码、代码结构、传输控制步骤、出错控制等作出规定并制定出标准。输控制步骤、出错控制等作出规定并制定出标准。1、什么是网络协议?、什么是网络协议?15.1.2 15.1.2 网络协议网络协议 1984 1984年,国际标准组织年,国际标准组织ISOISO公布了一个作为公布了一个作为未来网络协议指南的模型,该模型被称为开放系未来网络协议指南的模型,该模型被称为开放系统互联模型统互联模型OSIOSI。虽然完全遵守。虽然完全遵守OSIOSI的网络产品并的网络产品并没有成为网络市场上的标准,但没有成为网络市场上的标准,但OSIOSI还是可以提供还是可以提供一个概念上和功能上的框架,可以作为
13、学习网络一个概念上和功能上的框架,可以作为学习网络知识的依据,作为网路实现的参考。知识的依据,作为网路实现的参考。2、ISO/OSI参考模型参考模型15.1.2 15.1.2 网络协议网络协议 OSI OSI参考模型采用分层结构,将所有互联的参考模型采用分层结构,将所有互联的开放系统划分为功能上相对独立的七层,从最基开放系统划分为功能上相对独立的七层,从最基本的物理连接到最高层次的应用。本的物理连接到最高层次的应用。关于关于OSIOSI参考模型的详细知识见附带文件参考模型的详细知识见附带文件1 1。15.1.2 15.1.2 网络协议网络协议 虽然虽然OSIOSI参考模型的实际应用意义不是很大
14、,参考模型的实际应用意义不是很大,但它对于理解网络协议内部的运作的确很有帮助,但它对于理解网络协议内部的运作的确很有帮助,也为我们学习网络协议提供了一个很好的参考。也为我们学习网络协议提供了一个很好的参考。在现实网络世界里,在现实网络世界里,TCP/IPTCP/IP协议栈获得了更为广协议栈获得了更为广泛的应用。泛的应用。TCP/IP TCP/IP协议协议(Transmission Control(Transmission Control Protocol/Internet Protocol)Protocol/Internet Protocol)叫做传输控制叫做传输控制/网际网际协议,又叫网络通
15、讯协议,这个协议是协议,又叫网络通讯协议,这个协议是InternetInternet国国际互联网络的基础。际互联网络的基础。15.1.2 15.1.2 网络协议网络协议3、TCP/IP协议模型协议模型 TCP/IP TCP/IP协议是协议是7070年代中期美国国防部为其年代中期美国国防部为其ARPANETARPANET广域网开发的网络体系结构和协议标准,广域网开发的网络体系结构和协议标准,以它为基础组建的以它为基础组建的INTERNETINTERNET是目前国际上规模最是目前国际上规模最大的计算机网络,正因为大的计算机网络,正因为INTERNETINTERNET的广泛使用,的广泛使用,使得使得
16、TCP/IPTCP/IP成了事实上的标准。成了事实上的标准。15.1.2 15.1.2 网络协议网络协议 TCP/IP TCP/IP是网络中使用的基本的通信协议。虽然从是网络中使用的基本的通信协议。虽然从名字上看名字上看TCP/IPTCP/IP包括两个协议,传输控制协议包括两个协议,传输控制协议(TCP)(TCP)和和网际协议网际协议(IP)(IP),但,但TCP/IPTCP/IP实际上是一组协议,它包括实际上是一组协议,它包括TCPTCP、IPIP、UDPUDP、ICMPICMP、RIPRIP、TELNETTELNET、FTPFTP、SMTPSMTP、ARPARP、TFTPTFTP等许多协议
17、,这些协议一起称为等许多协议,这些协议一起称为TCP/IPTCP/IP协议。协议。关于关于TCP/IPTCP/IP协议的基础知识见附带文件协议的基础知识见附带文件1 1。15.1.2 15.1.2 网络协议网络协议15.1.2 15.1.2 网络协议网络协议3 3、UDPUDP协议协议 User Data Protocol User Data Protocol用户数据报协议用户数据报协议UDPUDP与与TCP/IPTCP/IP的差异:的差异:lUDPUDP直接利用直接利用IPIP协议进行协议进行UDPUDP数据报的传输。数据报的传输。lUDPUDP提供的是无连接的、不可靠的数据报投递服务。提供
18、的是无连接的、不可靠的数据报投递服务。lUDPUDP常用于数据量少的数据传输,常用于数据量少的数据传输,l当使用当使用UDPUDP协议传输信息流时,用户负责解决排序、协议传输信息流时,用户负责解决排序、差错确认等问题。差错确认等问题。网络编程方法网络编程方法15.215.2 网络应用程序编写网络应用程序编写15.2.115.2.1 网络编程的概网络编程的概述述SocketSocketWinSocketWinSocketRPCRPC命名管道邮箱命名管道邮箱1.1.什么是什么是SocketSocket?15.2.115.2.1 网络编程的概述网络编程的概述一、一、Socket 套接字(套接字(So
19、cketSocket)最初是由加利福尼亚大学)最初是由加利福尼亚大学BerkeleyBerkeley分校为分校为UNIXUNIX操作系统开发的网络通信接口。操作系统开发的网络通信接口。2020世纪世纪8080年代初,加利福尼亚大学年代初,加利福尼亚大学BerkeleyBerkeley将美国国防部将美国国防部高研署提供的高研署提供的TCP/IPTCP/IP集成到集成到UnixUnix中,并很快开发了中,并很快开发了TCP/IPTCP/IP应用程序接口应用程序接口(API)(API),即,即SocketSocket(套接字套接字)接口。接口。随着随着UNIXUNIX操作系统的广泛使用,套接字成为当
20、前最流行操作系统的广泛使用,套接字成为当前最流行的网络通信应用程序接口之一。的网络通信应用程序接口之一。15.2.115.2.1 网络编程的概述网络编程的概述 90 90年代初,由年代初,由Sun MicrosystemsSun Microsystems,JSB CorporationJSB Corporation,FTP softwareFTP software,MicrodyneMicrodyne和和MicrosoftMicrosoft等几家公司共同等几家公司共同制定了一套标准,即制定了一套标准,即Windows SocketsWindows Sockets规范。它是规范。它是Berkel
21、ey SocketsBerkeley Sockets的重要扩充,主要体现在它增加了一些的重要扩充,主要体现在它增加了一些异步函数和符合异步函数和符合WindowsWindows消息驱动特性的网络事件异步选消息驱动特性的网络事件异步选择机制。择机制。Windows SocketsWindows Sockets规范是一套开放的、支持多种规范是一套开放的、支持多种协议的协议的WindowsWindows下的网络编程接口。目前实际应用中的下的网络编程接口。目前实际应用中的Windows SocketsWindows Sockets规范主要有规范主要有1.11.1版和版和2.02.0版,其中版,其中1.
22、11.1版只版只支持支持TCP/IPTCP/IP协议,而协议,而2.02.0版支持多协议,并具有良好的向版支持多协议,并具有良好的向后兼容性。后兼容性。15.2.115.2.1 网络编程的概述网络编程的概述 Socket Socket实际上是指一个通信端点,借助于它,实际上是指一个通信端点,借助于它,用户所开发的用户所开发的SocketSocket应用程序,可以通过网络与其应用程序,可以通过网络与其它它SocketSocket应用程序进行通信。应用程序进行通信。套接字套接字socketssockets是支持是支持TCP/IPTCP/IP协议的网络通信的协议的网络通信的基本操作单元。可以将套接字
23、看作不同主机间的进基本操作单元。可以将套接字看作不同主机间的进程进行双向通信的端点。它构成了在单个主机内及程进行双向通信的端点。它构成了在单个主机内及整个网际间的编程界面。整个网际间的编程界面。15.2.115.2.1 网络编程的概述网络编程的概述 一般来说,跨机应用进程之间要在网络环境下一般来说,跨机应用进程之间要在网络环境下进行通信,必须要在网络的每一端都要建立一个套进行通信,必须要在网络的每一端都要建立一个套接字,两个套接字之间可以是建立连接的,也可以接字,两个套接字之间可以是建立连接的,也可以是无连接的,并通过对套接字的是无连接的,并通过对套接字的“读读”、“写写”操操作实现网络通信功
24、能。像文件那样有打开、读、写、作实现网络通信功能。像文件那样有打开、读、写、关闭的方式。关闭的方式。15.2.115.2.1 网络编程的概网络编程的概述述2.2.套接字套接字SocketSocket的分类的分类 根据传输数据类型的不同,套按字可分为面根据传输数据类型的不同,套按字可分为面向连接的字节流套接字(向连接的字节流套接字(stream socketsstream sockets)和面向无连接的数据报套接字(和面向无连接的数据报套接字(datagram datagram socketssockets)两种类型。)两种类型。15.2.115.2.1 网络编程的概述网络编程的概述 l 提供没
25、有记录边界的数据流,字节流不按记录提供没有记录边界的数据流,字节流不按记录定界:可以是双向的字节流(应用程序是全双工:定界:可以是双向的字节流(应用程序是全双工:可以通过套接字同时传输和接收)。可依赖流传递可以通过套接字同时传输和接收)。可依赖流传递有序的、不重复的数据。(有序的、不重复的数据。(“有序有序”指数据包按发指数据包按发送顺序送达。送顺序送达。“不重复不重复”指一个特定的数据包只能指一个特定的数据包只能获取一次。)这能确保收到流消息,而流非常适合获取一次。)这能确保收到流消息,而流非常适合处理大量数据。处理大量数据。1)1)字节流套接字字节流套接字15.2.115.2.1 网络编程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 编程 高级
限制150内