C+网络编程高级编程.ppt
《C+网络编程高级编程.ppt》由会员分享,可在线阅读,更多相关《C+网络编程高级编程.ppt(77页珍藏版)》请在三一办公上搜索。
1、第15章 网络编程,C+高级编程,本章主要教学内容,简略介绍网络的基本知识、功能及协议。客户机/服务器的网络模型及其原理。网络应用程序的编写:客户端应用程序、服务器端应用程序、浏览器程序、电子邮件发送程序。,15.1 网络概述,计算机网络:地理位置不同、具有独立功能的多个计算机系统,通过通信设备和线路互相连接起来,使用功能完整的网络软件来实现网络资源共享的大系统,称为计算机网络。,计算机网络从结构上可以分乘两部分:资源子网和通信子网。,计算机网络的组成:,15.1 网络概述,计算机网络组成示意图,15.1 网络概述,计算机网络结构示意图,资源子网:负责全网的数据处理以及向网络用户提供网络资源及
2、网络服务等。一般由主计算机系统、终端、各种硬件和软件资源和数据资源等组成。通信子网:为资源子网提供信息传送服务,是支持资源子网上用户之间相互通信的基本环境。一般由通信控制器、集线器、调制解调器、网络通信媒体等组成。,15.1 网络概述,计算机网络的分类:按网络覆盖的地理范围可分为:局域网LAN(local area network)城域网 MAN(metropolitan area network)广域网WAN(wide area network),15.1 网络概述,其它分类有:按交换方式、按传输媒体等分类,按网络拓扑结构可分为:星型网络 总线型网络 环型网络-网格型网络,15.1 网络概述
3、,计算机网络功能主要有:数据通信资源共享:共享硬件、软件、信息和知识等分布式数据处理,提高可靠性,15.1 网络概述,计算机网络的体系结构有两大类:对等网络和基于服务器的网络,对等网络的特点:在对等网络中,没有专用的服务器,网上所有 的计算机地位是平等的;网上所有计算机都既是客户机又是服务器;每台计算机的用户自己决定将其计算机中的哪 些数据共享到网络中去;没有负责整个网络管理的网络管理员;,15.1 网络概述,对等网络的优点:规模小,成本低,实现简单,15.1 网络概述,基于服务器的网络的特点:网络中有专用服务器(或主机)网络中有客户机(或终端)有网络操作系统和网络管理员对网络进行统一管理,基
4、于服务器的网络的优点:易于管理共享资源 安全性好 数据备份方便 网络规模基本不受限制,15.1 网络概述,15.1 网络概述,基于服务器的网络结构又分为:Client/Server结构(胖客户机)Browser/Server结构(瘦客户机)。,服务器Server:一台能够提供和管理可共享资源的计算机。客户机Client:能够使用服务器上的可共享资源的计算机。,Client/Server(客户机/服务器)结构,15.1 网络概述,服务器需要运行某一种网络操作系统,例如Windows Server 2003、Novell Netware、Unix等。通常有多台客户机连接到同一台服务器上,它们除了能
5、运行自己的应用程序外,还可以通过网络获得服务器的服务。在这种以服务器为中心的网络中,一旦服务器出现故障或者被关闭,整个网络将无法正常运行。,15.1 网络概述,15.1.1 客户机/服务器模型,客户机/服务器模型的工作原理:,请求,通信设施,请求,响应,客户端,服务器端,15.1.1 客户机/服务器模型,采用客户机/服务器模型的原因:,不对等现象的存在:服务器端有丰富的资源,强大的运算能力,可存放大量的资源和信息。而客户端在软硬件的配置上相对薄弱,不可能也没有必要在每一台客户机上存放大量资源。为节约资源,提高利用率和使用效率,让服务器上的资源公有,让多个客户端共享这些资源。,(2)异步性 客户
6、机/服务器模式可以很好地支持异步性操作,方便远程通信的实现。,15.1.1 客户机/服务器模型,15.1.2 网络协议,通俗地说,网络协议就是网络之间沟通、交流的桥梁,只有相同网络协议的计算机才能进行信息的沟通与交流。这就好比人与人之间交流所使用的各种语言一样,只有使用相同语言才能正常、顺利地进行交流。从专业角度定义,网络协议是计算机在网络中实现通信时必须遵守的约定,也就是通信协议。主要是对信息传输的速率、传输代码、代码结构、传输控制步骤、出错控制等作出规定并制定出标准。,。,1、什么是网络协议?,15.1.2 网络协议,1984年,国际标准组织ISO公布了一个作为未来网络协议指南的模型,该模
7、型被称为开放系统互联模型OSI。虽然完全遵守OSI的网络产品并没有成为网络市场上的标准,但OSI还是可以提供一个概念上和功能上的框架,可以作为学习网络知识的依据,作为网路实现的参考。,2、ISO/OSI参考模型,15.1.2 网络协议,OSI参考模型采用分层结构,将所有互联的开放系统划分为功能上相对独立的七层,从最基本的物理连接到最高层次的应用。关于OSI参考模型的详细知识见附带文件1。,15.1.2 网络协议,虽然OSI参考模型的实际应用意义不是很大,但它对于理解网络协议内部的运作的确很有帮助,也为我们学习网络协议提供了一个很好的参考。在现实网络世界里,TCP/IP协议栈获得了更为广泛的应用
8、。,TCP/IP协议(Transmission Control Protocol/Internet Protocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础。,15.1.2 网络协议,3、TCP/IP协议模型,TCP/IP协议是70年代中期美国国防部为其ARPANET广域网开发的网络体系结构和协议标准,以它为基础组建的INTERNET是目前国际上规模最大的计算机网络,正因为INTERNET的广泛使用,使得TCP/IP成了事实上的标准。,15.1.2 网络协议,TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控
9、制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP协议。关于TCP/IP协议的基础知识见附带文件1。,15.1.2 网络协议,15.1.2 网络协议,3、UDP协议,User Data Protocol用户数据报协议UDP与TCP/IP的差异:UDP直接利用IP协议进行UDP数据报的传输。UDP提供的是无连接的、不可靠的数据报投递服务。UDP常用于数据量少的数据传输,当使用UDP协议传输信息流时,用户负责解决排序、差错确认等问题。,网络编程方法
10、,15.2 网络应用程序编写,网络编程的概述,Socket,WinSocket,RPC,命名管道邮箱,1.什么是Socket?,网络编程的概述,一、Socket,套接字(Socket)最初是由加利福尼亚大学Berkeley分校为UNIX操作系统开发的网络通信接口。20世纪80年代初,加利福尼亚大学Berkeley将美国国防部高研署提供的TCP/IP集成到Unix中,并很快开发了TCP/IP应用程序接口(API),即Socket(套接字)接口。随着UNIX操作系统的广泛使用,套接字成为当前最流行的网络通信应用程序接口之一。,网络编程的概述,90年代初,由Sun Microsystems,JSB
11、Corporation,FTP software,Microdyne和Microsoft等几家公司共同制定了一套标准,即Windows Sockets规范。它是Berkeley Sockets的重要扩充,主要体现在它增加了一些异步函数和符合Windows消息驱动特性的网络事件异步选择机制。Windows Sockets规范是一套开放的、支持多种协议的Windows下的网络编程接口。目前实际应用中的Windows Sockets规范主要有1.1版和2.0版,其中1.1版只支持TCP/IP协议,而2.0版支持多协议,并具有良好的向后兼容性。,网络编程的概述,Socket实际上是指一个通信端点,借助
12、于它,用户所开发的Socket应用程序,可以通过网络与其它Socket应用程序进行通信。套接字sockets是支持TCP/IP协议的网络通信的基本操作单元。可以将套接字看作不同主机间的进程进行双向通信的端点。它构成了在单个主机内及整个网际间的编程界面。,网络编程的概述,一般来说,跨机应用进程之间要在网络环境下进行通信,必须要在网络的每一端都要建立一个套接字,两个套接字之间可以是建立连接的,也可以是无连接的,并通过对套接字的“读”、“写”操作实现网络通信功能。像文件那样有打开、读、写、关闭的方式。,网络编程的概述,2.套接字Socket的分类,根据传输数据类型的不同,套按字可分为面向连接的字节流
13、套接字(stream sockets)和面向无连接的数据报套接字(datagram sockets)两种类型。,网络编程的概述,提供没有记录边界的数据流,字节流不按记录定界:可以是双向的字节流(应用程序是全双工:可以通过套接字同时传输和接收)。可依赖流传递有序的、不重复的数据。(“有序”指数据包按发送顺序送达。“不重复”指一个特定的数据包只能获取一次。)这能确保收到流消息,而流非常适合处理大量数据。,1)字节流套接字,网络编程的概述,在TCP/IP协议簇中对应TCP协议。,通信端点使用TCP对应的INTERNET地址互相连接,可保证按正确的顺序以及单一和可靠的地址传输数据。,包长没有限制,信包
14、的传输也不重复。,网络编程的概述,2)数据报套接字,数据报套接字支持双向数据流,此数据流不能保证按顺序和不重复送达。,在TCP/IP协议簇中对应UDP协议。,通信端点使用UDP对应的INTERNET地址。不能保证所有数据都准确有序地到达目的地。不保证顺序性、可靠性和无重复性。,网络编程的概述,利用数据报服务可实现一些简单的网络服务,如网点检测程序PING。由于不建立连接,数据报协议的连接比字节流协议快。,双方不需要互连,按固定的最大长度进行传输,因而适用于单个报文传输,或较小文件的传输。,网络编程的概述,3.套接字Socket的编程要点和过程,不论是哪种套接字编程,采用的都是客户机/服务器方式
15、,其运作过程基本类似。,字节流套接字的服务进程和客户进程,在通信前必须创建各自的套接字以建立连接,然后对相应的套接字进行“读”、“写”操作,实现信息的交换。,网络编程的概述,1)服务器进程创建套接字,服务进程总是先于客户进程启动,服务进程首先调用socket()函数创建自已端的一个字节流套接字,并提供三个参数:网络地址类型,一般取AF_INEF;套接字类型,这里取SOCK_STREAM;网络协议,缺省为TCP/IP协议,对应参数为0。,网络编程的概述,给套接字地址变量赋初值。在生成套接字后,要用服务器的地址先对sockaddr_in结构变量赋初值。sockaddr_in在/usr/includ
16、e/netinet/in.h中有定义,它只适用于INTERNET地址类型,含有INTERNET套接字地址类型、IP端口号、IP地址等信息。地址类型可取定为AF_INET,IP地址对服务器可取任意合法地址 INADDR_ANY。IP端口号可由用户设定,但要注意主机字节顺序向网络字节顺序的转换。,网络编程的概述,给套接字命名。由socket()函数创建的套接字是没有名字的。所谓命名,就是用bind()函数将服务器地址捆绑到创建的套接字上。,服务器进程准备接受来自客户机的连接请求。首先调用listen()函数,让服务器进程进入监听状态;然后调用 accept()函数,准备接受客户机的连接信号。无连接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 编程 高级
链接地址:https://www.31ppt.com/p-6154094.html