书签 分享 收藏 举报 版权申诉 / 77
上传文档赚钱

类型C+网络编程高级编程课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2477247
  • 上传时间:2022-04-23
  • 格式:PPT
  • 页数:77
  • 大小:744.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C+网络编程高级编程课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    网络 编程 高级 课件
    资源描述:

    1、第第1515章章 网络编程网络编程C+高级编程高级编程刘刘 海海 燕燕本章主要教学内容本章主要教学内容l 简略介绍网络的基本知识、功能及协议。简略介绍网络的基本知识、功能及协议。l 客户机客户机/ /服务器的网络模型及其原理。服务器的网络模型及其原理。l 网络应用程序的编写:客户端应用程序、网络应用程序的编写:客户端应用程序、服务器端应用程序、浏览器程序、电子邮件服务器端应用程序、浏览器程序、电子邮件发送程序。发送程序。刘刘 海海 燕燕15.1 15.1 网络概述网络概述计算机网络计算机网络: 地理位置不同、具有独立功能的多个计算机系统,通过地理位置不同、具有独立功能的多个计算机系统,通过通信

    2、设备和线路互相连接起来,使用功能完整的网络软件来通信设备和线路互相连接起来,使用功能完整的网络软件来实现网络资源共享的大系统,称为计算机网络。实现网络资源共享的大系统,称为计算机网络。 计算机网络从结构上可以分乘两部分:计算机网络从结构上可以分乘两部分:资源子网和通信资源子网和通信子网。子网。计算机网络的组成:计算机网络的组成:刘刘 海海 燕燕15.1 15.1 网络概述网络概述 计算机网络组成示意图计算机网络组成示意图刘刘 海海 燕燕15.1 15.1 网络概述网络概述 计算机网络结构示意图计算机网络结构示意图刘刘 海海 燕燕 资源子网:资源子网:负责全网的数据处理以及向网络用户提供网络负责

    3、全网的数据处理以及向网络用户提供网络资源及网络服务等。一般由主计算机系统、终端、各种硬件和资源及网络服务等。一般由主计算机系统、终端、各种硬件和软件资源和数据资源等组成。软件资源和数据资源等组成。 通信子网:通信子网:为资源子网提供信息传送服务,是支持资源子为资源子网提供信息传送服务,是支持资源子网上用户之间相互通信的基本环境。一般由通信控制器、集线网上用户之间相互通信的基本环境。一般由通信控制器、集线器、调制解调器、网络通信媒体等组成。器、调制解调器、网络通信媒体等组成。15.1 15.1 网络概述网络概述刘刘 海海 燕燕计算机网络的分类:计算机网络的分类: 按网络覆盖的地理范围可分为:按网

    4、络覆盖的地理范围可分为: 局域网局域网LANLAN(local area networklocal area network) 城域网城域网 MANMAN(metropolitan area networkmetropolitan area network) 广域网广域网WANWAN(wide area networkwide area network)15.1 15.1 网络概网络概述述刘刘 海海 燕燕其它分类有:按交换方式、按传输媒体等分类其它分类有:按交换方式、按传输媒体等分类按网络拓扑结构可分为:按网络拓扑结构可分为: 星型网络星型网络 总线型网络总线型网络 环型网络环型网络 - -网

    5、格型网络网格型网络15.1 15.1 网络概述网络概述刘刘 海海 燕燕计算机网络功能计算机网络功能主要有:主要有:数据通信数据通信资源共享:共享硬件、软件、信息和知识等资源共享:共享硬件、软件、信息和知识等分布式数据处理,提高可靠性分布式数据处理,提高可靠性15.1 网络概述网络概述刘刘 海海 燕燕计算机网络的体系结构计算机网络的体系结构有两大类:有两大类: 对等网络和基于服务器的网络对等网络和基于服务器的网络对等网络的特点:对等网络的特点: 在对等网络中,没有专用的服务器,网上所有在对等网络中,没有专用的服务器,网上所有 的计算机地位是平等的;的计算机地位是平等的; 网上所有计算机都既是客户

    6、机又是服务器;网上所有计算机都既是客户机又是服务器; 每台计算机的用户自己决定将其计算机中的哪每台计算机的用户自己决定将其计算机中的哪 些数据共享到网络中去;些数据共享到网络中去; 没有负责整个网络管理的网络管理员;没有负责整个网络管理的网络管理员;15.1 网络概述网络概述刘刘 海海 燕燕对等网络的优点:对等网络的优点: 规模小,成本低,实现简单规模小,成本低,实现简单15.1 15.1 网络概述网络概述基于服务器的网络的特点基于服务器的网络的特点: : 网络中有专用服务器(或主机)网络中有专用服务器(或主机) 网络中有客户机(或终端)网络中有客户机(或终端) 有网络操作系统和网络管理员对网

    7、络进行统一管理有网络操作系统和网络管理员对网络进行统一管理刘刘 海海 燕燕基于服务器的网络的优点基于服务器的网络的优点: : 易于管理共享资源易于管理共享资源 安全性好安全性好 数据备份方便数据备份方便 网络规模基本不受限制网络规模基本不受限制 15.1 15.1 网络概网络概述述刘刘 海海 燕燕15.1 15.1 网络概网络概述述基于服务器的网络结构又分为:基于服务器的网络结构又分为:Client/ServerClient/Server结构(胖客户机)结构(胖客户机)Browser/ServerBrowser/Server结构(瘦客户机)。结构(瘦客户机)。刘刘 海海 燕燕服务器服务器Ser

    8、verServer: :一台能够提供和管理可共享资源的计算机。一台能够提供和管理可共享资源的计算机。客户机客户机ClientClient: :能够使用服务器上的可共享资源的计算机。能够使用服务器上的可共享资源的计算机。Client/ServerClient/Server(客户机(客户机/ /服务器)结构服务器)结构15.1 15.1 网络概述网络概述刘刘 海海 燕燕 服务器需要运行某一种网络操作系统,例如服务器需要运行某一种网络操作系统,例如Windows Windows Server 2003Server 2003、Novell NetwareNovell Netware、UnixUnix等

    9、。等。 通常有多台客户机连接到同一台服务器上,它们除了能通常有多台客户机连接到同一台服务器上,它们除了能运行自己的应用程序外,还可以通过网络获得服务器的服务。运行自己的应用程序外,还可以通过网络获得服务器的服务。 在这种以服务器为中心的网络中,一旦服务器出现故障在这种以服务器为中心的网络中,一旦服务器出现故障或者被关闭,整个网络将无法正常运行。或者被关闭,整个网络将无法正常运行。15.1 15.1 网络概述网络概述刘刘 海海 燕燕15.1.1 15.1.1 客户机客户机/ /服务器模型服务器模型客户机客户机/ /服务器模型的工作原理:服务器模型的工作原理:请求请求 通信设施通信设施请求请求 响

    10、应响应 客户端客户端 服务器端服务器端刘刘 海海 燕燕15.1.1 15.1.1 客户机客户机/ /服务器模型服务器模型采用客户机采用客户机/ /服务器模型的原因:服务器模型的原因:(1)(1)不对等现象的存在不对等现象的存在: : 服务器端有丰富的资源,强大的运算能力,可存放服务器端有丰富的资源,强大的运算能力,可存放大量的资源和信息。而客户端在软硬件的配置上相大量的资源和信息。而客户端在软硬件的配置上相对薄弱,不可能也没有必要在每一台客户机上存放对薄弱,不可能也没有必要在每一台客户机上存放大量资源。为节约资源,提高利用率和使用效率,大量资源。为节约资源,提高利用率和使用效率,让服务器上的资

    11、源公有,让多个客户端共享这些资让服务器上的资源公有,让多个客户端共享这些资源。源。刘刘 海海 燕燕(2) (2) 异步性异步性 客户机客户机/ /服务器模式可以很好地支持异步性操作,服务器模式可以很好地支持异步性操作,方便远程通信的实现。方便远程通信的实现。15.1.1 15.1.1 客户机客户机/ /服务器模型服务器模型刘刘 海海 燕燕15.1.2 15.1.2 网络协议网络协议 通俗地说,网络协议就是网络之间沟通、交流通俗地说,网络协议就是网络之间沟通、交流的桥梁,只有相同网络协议的计算机才能进行信息的桥梁,只有相同网络协议的计算机才能进行信息的沟通与交流。这就好比人与人之间交流所使用的的

    12、沟通与交流。这就好比人与人之间交流所使用的各种语言一样,只有使用相同语言才能正常、顺利各种语言一样,只有使用相同语言才能正常、顺利地进行交流。地进行交流。 从专业角度定义,网络协议是计算机在网络中从专业角度定义,网络协议是计算机在网络中实现通信时必须遵守的约定,也就是通信协议。主实现通信时必须遵守的约定,也就是通信协议。主要是对信息传输的速率、传输代码、代码结构、传要是对信息传输的速率、传输代码、代码结构、传输控制步骤、出错控制等作出规定并制定出标准。输控制步骤、出错控制等作出规定并制定出标准。1、什么是网络协议?、什么是网络协议?刘刘 海海 燕燕15.1.2 15.1.2 网络协网络协议议

    13、1984 1984年,国际标准组织年,国际标准组织ISOISO公布了一个作为公布了一个作为未来网络协议指南的模型,该模型被称为开放系未来网络协议指南的模型,该模型被称为开放系统互联模型统互联模型OSIOSI。虽然完全遵守。虽然完全遵守OSIOSI的网络产品并的网络产品并没有成为网络市场上的标准,但没有成为网络市场上的标准,但OSIOSI还是可以提还是可以提供一个概念上和功能上的框架,可以作为学习网供一个概念上和功能上的框架,可以作为学习网络知识的依据,作为网路实现的参考。络知识的依据,作为网路实现的参考。2、ISO/OSI参考模型参考模型刘刘 海海 燕燕15.1.2 15.1.2 网络协议网络

    14、协议 OSI OSI参考模型采用分层结构,将所有互联的参考模型采用分层结构,将所有互联的开放系统划分为功能上相对独立的七层,从最基开放系统划分为功能上相对独立的七层,从最基本的物理连接到最高层次的应用。本的物理连接到最高层次的应用。 关于关于OSIOSI参考模型的详细知识见附带文件参考模型的详细知识见附带文件1 1。刘刘 海海 燕燕15.1.2 15.1.2 网络协议网络协议 虽然虽然OSIOSI参考模型的实际应用意义不是很大,但它对参考模型的实际应用意义不是很大,但它对于理解网络协议内部的运作的确很有帮助,也为我们学习于理解网络协议内部的运作的确很有帮助,也为我们学习网络协议提供了一个很好的

    15、参考。在现实网络世界里,网络协议提供了一个很好的参考。在现实网络世界里,TCP/IPTCP/IP协议栈获得了更为广泛的应用。协议栈获得了更为广泛的应用。 刘刘 海海 燕燕 TCP/IP TCP/IP协议协议(Transmission Control (Transmission Control Protocol/Internet Protocol)Protocol/Internet Protocol)叫做传输控制叫做传输控制/ /网际协议,网际协议,又叫网络通讯协议,这个协议是又叫网络通讯协议,这个协议是InternetInternet国际互联网络的国际互联网络的基础。基础。 15.1.2 15

    16、.1.2 网络协议网络协议3、TCP/IP协议模型协议模型刘刘 海海 燕燕 TCP/IP TCP/IP协议是协议是7070年代中期美国国防部为其年代中期美国国防部为其ARPANETARPANET广域网开发的网络体系结构和协议标准广域网开发的网络体系结构和协议标准,以它为基础组建的,以它为基础组建的INTERNETINTERNET是目前国际上规模是目前国际上规模最大的计算机网络,正因为最大的计算机网络,正因为INTERNETINTERNET的广泛使用的广泛使用,使得,使得TCP/IPTCP/IP成了事实上的标准。成了事实上的标准。15.1.2 15.1.2 网络协议网络协议刘刘 海海 燕燕 TC

    17、P/IP TCP/IP是网络中使用的基本的通信协议。虽然从是网络中使用的基本的通信协议。虽然从名字上看名字上看TCP/IPTCP/IP包括两个协议,传输控制协议包括两个协议,传输控制协议(TCP)(TCP)和网际协议和网际协议(IP)(IP),但,但TCP/IPTCP/IP实际上是一组协议,它包实际上是一组协议,它包括括TCPTCP、IPIP、UDPUDP、ICMPICMP、RIPRIP、TELNETTELNET、FTPFTP、SMTPSMTP、ARPARP、TFTPTFTP等许多协议,这些协议一起称为等许多协议,这些协议一起称为TCP/IPTCP/IP协协议。议。 关于关于TCP/IPTCP

    18、/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提供的是无连接的、不可靠的数据报投递服务。提供的是无连接的、不可靠的数据报投递服务。lUDPUDP常用于数据量少的数据传输,常用于数据量少

    19、的数据传输,l当使用当使用UDPUDP协议传输信息流时,用户负责解决排序、协议传输信息流时,用户负责解决排序、差错确认等问题。差错确认等问题。刘刘 海海 燕燕网络编程方法网络编程方法15.2 15.2 网络应用程序编写网络应用程序编写15.2.1 15.2.1 网络编程的概网络编程的概述述SocketSocketWinSocketWinSocketRPCRPC命名管道邮箱命名管道邮箱刘刘 海海 燕燕1.1.什么是什么是SocketSocket?15.2.1 15.2.1 网络编程的概述网络编程的概述一、一、 Socket 套接字(套接字(SocketSocket)最初是由加利福尼亚大学)最初是

    20、由加利福尼亚大学BerkeleyBerkeley分校分校为为UNIXUNIX操作系统开发的网络通信接口。操作系统开发的网络通信接口。2020世纪世纪8080年代初,加利年代初,加利福尼亚大学福尼亚大学BerkeleyBerkeley将美国国防部高研署提供的将美国国防部高研署提供的TCP/IPTCP/IP集成到集成到UnixUnix中,并很快开发了中,并很快开发了TCP/IPTCP/IP应用程序接口应用程序接口(API)(API),即,即SocketSocket( (套接字套接字) )接口。随着接口。随着UNIXUNIX操作系统的广泛使用,套接字操作系统的广泛使用,套接字成为当前最流行的网络通信

    21、应用程序接口之一。成为当前最流行的网络通信应用程序接口之一。 刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述 90 90年代初,由年代初,由Sun MicrosystemsSun Microsystems,JSB CorporationJSB Corporation,FTP softwareFTP software,MicrodyneMicrodyne和和MicrosoftMicrosoft等几家公司共同等几家公司共同制定了一套标准,即制定了一套标准,即Windows SocketsWindows Sockets规范。它是规范。它是Berkeley SocketsBe

    22、rkeley Sockets的重要扩充,主要体现在它增加了一的重要扩充,主要体现在它增加了一些异步函数和符合些异步函数和符合WindowsWindows消息驱动特性的网络事件异步消息驱动特性的网络事件异步选择机制。选择机制。Windows SocketsWindows Sockets规范是一套开放的、支持多规范是一套开放的、支持多种协议的种协议的WindowsWindows下的网络编程接口。目前实际应用中的下的网络编程接口。目前实际应用中的Windows SocketsWindows Sockets规范主要有规范主要有1.11.1版和版和2.02.0版,其中版,其中1.11.1版版只支持只支持

    23、TCP/IPTCP/IP协议,而协议,而2.02.0版支持多协议,并具有良好的版支持多协议,并具有良好的向后兼容性。向后兼容性。 刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述 Socket Socket实际上是指一个通信端点,借助于它,用户所开实际上是指一个通信端点,借助于它,用户所开发的发的SocketSocket应用程序,可以通过网络与其它应用程序,可以通过网络与其它SocketSocket应用程序应用程序进行通信。进行通信。 套接字套接字socketssockets是支持是支持TCP/IPTCP/IP协议的网络通信的基本操作协议的网络通信的基本操作单元。可以将

    24、套接字看作不同主机间的进程进行双向通信的单元。可以将套接字看作不同主机间的进程进行双向通信的端点。它构成了在单个主机内及整个网际间的编程界面。端点。它构成了在单个主机内及整个网际间的编程界面。刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述 一般来说,跨机应用进程之间要在网络环境下进行通信,一般来说,跨机应用进程之间要在网络环境下进行通信,必须要在网络的每一端都要建立一个套接字,两个套接字之必须要在网络的每一端都要建立一个套接字,两个套接字之间可以是建立连接的,也可以是无连接的,并通过对套接字间可以是建立连接的,也可以是无连接的,并通过对套接字的的“读读”、“写写”操作

    25、实现网络通信功能。像文件那样有打操作实现网络通信功能。像文件那样有打开、读、写、关闭的方式。开、读、写、关闭的方式。刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概网络编程的概述述2.2. 套接字套接字SocketSocket的分类的分类 根据传输数据类型的不同,套按字可分为面向连接的根据传输数据类型的不同,套按字可分为面向连接的字节流套接字(字节流套接字(stream socketsstream sockets) 和面向无连接的数据报套接字(和面向无连接的数据报套接字(datagram socketsdatagram sockets)两种)两种类型。类型。 刘刘 海海 燕燕15.2.

    26、1 15.2.1 网络编程的概述网络编程的概述 l 提供没有记录边界的数据流,字节流不按记录定界:可提供没有记录边界的数据流,字节流不按记录定界:可以是双向的字节流(应用程序是全双工:可以通过套接字以是双向的字节流(应用程序是全双工:可以通过套接字同时传输和接收)。可依赖流传递有序的、不重复的数据。同时传输和接收)。可依赖流传递有序的、不重复的数据。(“有序有序”指数据包按发送顺序送达。指数据包按发送顺序送达。“不重复不重复”指一个指一个特定的数据包只能获取一次。)这能确保收到流消息,而特定的数据包只能获取一次。)这能确保收到流消息,而流非常适合处理大量数据。流非常适合处理大量数据。1)1)字

    27、节流套接字字节流套接字刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述l 在在TCP/IPTCP/IP协议簇中对应协议簇中对应TCPTCP协议。协议。 l通信端点使用通信端点使用TCPTCP对应的对应的INTERNETINTERNET地址互相连接,可保证按正地址互相连接,可保证按正确的顺序以及单一和可靠的地址传输数据。确的顺序以及单一和可靠的地址传输数据。 l包长没有限制,信包的传输也不重复。包长没有限制,信包的传输也不重复。 刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概网络编程的概述述2)2)数据报套接字数据报套接字l 数据报套接字支持双向数据流,此数据流

    28、不能保证按数据报套接字支持双向数据流,此数据流不能保证按顺序和不重复送达。顺序和不重复送达。 l 在在TCP/IPTCP/IP协议簇中对应协议簇中对应UDPUDP协议。协议。 l 通信端点使用通信端点使用UDPUDP对应的对应的INTERNETINTERNET地址。不能保证所有地址。不能保证所有数据都准确有序地到达目的地。不保证顺序性、可靠性和数据都准确有序地到达目的地。不保证顺序性、可靠性和无重复性。无重复性。 刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述l 利用数据报服务可实现一些简单的网络服务,如网点检利用数据报服务可实现一些简单的网络服务,如网点检测程序测程

    29、序PINGPING。由于不建立连接,数据报协议的连接比字节流。由于不建立连接,数据报协议的连接比字节流协议快。协议快。 l 双方不需要互连,按固定的最大长度进行传输,因而适双方不需要互连,按固定的最大长度进行传输,因而适用于单个报文传输,或较小文件的传输。用于单个报文传输,或较小文件的传输。刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述3.3. 套接字套接字SocketSocket的编程要点和过程的编程要点和过程 不论是哪种套接字编程,采用的都是客户机不论是哪种套接字编程,采用的都是客户机/ /服务器方服务器方式,其运作过程基本类似。式,其运作过程基本类似。 字节流套

    30、接字的服务进程和客户进程,在通信前必须创字节流套接字的服务进程和客户进程,在通信前必须创建各自的套接字以建立连接,然后对相应的套接字进行建各自的套接字以建立连接,然后对相应的套接字进行“读读”、“写写”操作,实现信息的交换。操作,实现信息的交换。 刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述1)1)服务器进程创建套接字服务器进程创建套接字 服务进程总是先于客户进程启动,服务进程首先调用服务进程总是先于客户进程启动,服务进程首先调用socket()socket()函数创建自已端的一个字节流套接字,并提供三个参数:函数创建自已端的一个字节流套接字,并提供三个参数: 网络

    31、地址类型,一般取网络地址类型,一般取AF_INEFAF_INEF; 套接字类型,这里取套接字类型,这里取SOCK_STREAMSOCK_STREAM; 网络协议,缺省为网络协议,缺省为TCP/IPTCP/IP协议,对应参数为协议,对应参数为0 0。 刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述 给套接字地址变量赋初值。给套接字地址变量赋初值。 在生成套接字后,要用服务器的地址先对在生成套接字后,要用服务器的地址先对sockaddr_insockaddr_in结结构变量赋初值。构变量赋初值。sockaddr_insockaddr_in在在/usr/include/ne

    32、tinet/in.h/usr/include/netinet/in.h中中有定义,它只适用于有定义,它只适用于INTERNETINTERNET地址类型,含有地址类型,含有INTERNETINTERNET套接字套接字地址类型、地址类型、IPIP端口号、端口号、IPIP地址等信息。地址类型可取定为地址等信息。地址类型可取定为AF_INETAF_INET,IPIP地址对服务器可取任意合法地址地址对服务器可取任意合法地址 INADDR_ANYINADDR_ANY。IPIP端口号可由用户设定,但要注意主机字节顺序向网络字节顺序端口号可由用户设定,但要注意主机字节顺序向网络字节顺序的转换。的转换。 刘刘

    33、海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述 给套接字命名。由给套接字命名。由socket()socket()函数创建的套接字是没有名字函数创建的套接字是没有名字的。所谓命名,就是用的。所谓命名,就是用bind()bind()函数将服务器地址捆绑到创建函数将服务器地址捆绑到创建的套接字上。的套接字上。 服务器进程准备接受来自客户机的连接请求。首先调用服务器进程准备接受来自客户机的连接请求。首先调用listen()listen()函数,让服务器进程进入监听状态;然后调用函数,让服务器进程进入监听状态;然后调用 accept()accept()函数,准备接受客户机的连接信号。

    34、无连接请求时,函数,准备接受客户机的连接信号。无连接请求时,服务进程被阻塞。服务进程被阻塞。刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述2)2)客户进程调用客户进程调用socket( )socket( )函数创建自己端的套接字函数创建自己端的套接字 给客户端的给客户端的sockaddr_insockaddr_in结构体变量赋值。地址类型仍可取结构体变量赋值。地址类型仍可取AF_INETAF_INET,端口号和服务器方的端口号相同,欲连服务器的地址,端口号和服务器方的端口号相同,欲连服务器的地址通过调用通过调用inet_addr()inet_addr()转换得到。也可

    35、通过转换得到。也可通过gethostbyname()gethostbyname()函函数将名字转换为指向数将名字转换为指向hostenthostent结构变量的指针,再将结构变量的指针,再将hostenthostent结结构变量的地址成员用构变量的地址成员用bcopy()bcopy()复制到复制到sockaddr_insockaddr_in结构变量上。结构变量上。 刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述 客户方调用客户方调用connect()connect()函数向服务进程发出连接请求。函数向服务进程发出连接请求。 3 3)当连接请求到来后,被阻塞服务进程的当

    36、连接请求到来后,被阻塞服务进程的accpet()accpet()函数生成函数生成一个新的字节流套接字,并返回客户机的一个新的字节流套接字,并返回客户机的sockaddr_insockaddr_in结构变结构变量,从而在服务器应用程序中用新的被赋予客户机地址的套接量,从而在服务器应用程序中用新的被赋予客户机地址的套接字同客户进程进行连接,然后向客户方返回接受信号。字同客户进程进行连接,然后向客户方返回接受信号。 刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述4 4)一旦客户机的套接字收到来自服务器的接受信号,则表一旦客户机的套接字收到来自服务器的接受信号,则表示客户机与

    37、服务器双方已实现连接。任一方均可向对方发示客户机与服务器双方已实现连接。任一方均可向对方发送,也可接收对方发来的数据。这既可通过送,也可接收对方发来的数据。这既可通过send()send()、recv()recv()函数来实现。也可通过函数来实现。也可通过read()read()、write()write()函数来交换数据。函数来交换数据。 刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述5 5)服务进程和客户进程可通过调用服务进程和客户进程可通过调用shutdown()shutdown()和和colse()colse()关关闭套接字上的所有发送和接收操作,撤销套接字并

    38、中断连接。闭套接字上的所有发送和接收操作,撤销套接字并中断连接。 整个运作过程用图表示如下:整个运作过程用图表示如下: 刘刘 海海 燕燕刘刘 海海 燕燕WinSocketWinSocket同时支持字节流套接字和数据报套接字。同时支持字节流套接字和数据报套接字。面向连接的字节流套接字的时序图见图面向连接的字节流套接字的时序图见图6-36-3;面向无连接的数据报套接字的时序图见图面向无连接的数据报套接字的时序图见图6-46-4。15.2.1 15.2.1 网络编程的概述网络编程的概述4.4. WinSocketWinSocket刘刘 海海 燕燕1)Creat 1)Creat 功能:建立套接字。功能

    39、:建立套接字。函数原型及参数说明:函数原型及参数说明:P149-150P149-15015.2.1 15.2.1 网络编程的概述网络编程的概述5.5. MFCMFC的的CSocketCSocket类类2)Bind 2)Bind 功能:建立套接字端口与网络地址连接起来。功能:建立套接字端口与网络地址连接起来。函数原型及参数说明:函数原型及参数说明:P150P150刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述3)Listen 3)Listen 功能:等待功能:等待SocketSocket请求。请求。 函数原型及参数说明:函数原型及参数说明:P149-150P149-15

    40、04)Accept 4)Accept 功能:取得对列上的第一个连接请求,功能:取得对列上的第一个连接请求,并建立一个具有与并建立一个具有与SocketSocket相同特性的套接字。相同特性的套接字。 函数原型及参数说明:函数原型及参数说明:P150P150刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述5)Connect 5)Connect 功能:向服务器提出一个连接请求。功能:向服务器提出一个连接请求。 函数原型及参数说明:函数原型及参数说明:P150P1506)Receive 6)Receive 功能:从已连接的客户端或服务器端功能:从已连接的客户端或服务器端接收数

    41、据。接收数据。 函数原型及参数说明:函数原型及参数说明:P150P150151151刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概网络编程的概述述7)Send 7)Send 功能:发送数据到已连接的客户端或服务功能:发送数据到已连接的客户端或服务器端。器端。 函数原型及参数说明:函数原型及参数说明:P151P1518)8)其他函数:其他函数:Attach Detach GetLastErrorAttach Detach GetLastError ShutDown OnAccept Close ShutDown OnAccept Close IsBlocking FromHandle

    42、IsBlocking FromHandle CancelBlockingCall CancelBlockingCall刘刘 海海 燕燕 1)1)利用利用CSocketFileCSocketFile类和类和ArchiveArchive类实现。类实现。15.2.1 15.2.1 网络编程的概述网络编程的概述15.15. 利用利用CSocketCSocket类直接进行数据通信的两种方式类直接进行数据通信的两种方式 2)2)利用利用CSocketCSocket类的成员函数类的成员函数ReceiveReceive、SendSend、 ReceiveFrom ReceiveFrom、SendtoSendt

    43、o、ListenListen、AcceptAccept等实现。等实现。刘刘 海海 燕燕15.2.1 15.2.1 网络编程的概述网络编程的概述方法方法2)2)的实现步骤:的实现步骤:服务器端:服务器端:Construct-Create-Bind-ListenConstruct-Create-Bind-Listen -Accept-Send-Close -Accept-Send-Close客户机端:客户机端:Construct-Create-Connect-ReceiveConstruct-Create-Connect-Receive -Close -Close刘刘 海海 燕燕. .创建应用程序

    44、的基本框架创建应用程序的基本框架15.2.2 15.2.2 客户机端的编程实例客户机端的编程实例. .修改资源修改资源. .增加一个类增加一个类. .实现网络功能实现网络功能. .几个重要函数的详细代码几个重要函数的详细代码刘刘 海海 燕燕15.2.3 15.2.3 服务器端的编程实例服务器端的编程实例. . 创建应用程序的基本框架创建应用程序的基本框架. . 修改资源修改资源. . 增加两个类增加两个类. . 实现网络功能实现网络功能. .相关函数的实现相关函数的实现刘刘 海海 燕燕15.2.415.2.4 浏览器和浏览器和MAPIMAPI的编程实例的编程实例1. 1. 浏览器的编程实例浏览

    45、器的编程实例URL:URL:统一资源定位符统一资源定位符 (Uniform Resource Locator) (Uniform Resource Locator) URL URL是统一的,因为它们采用相同的基本语法,无论寻址是统一的,因为它们采用相同的基本语法,无论寻址哪种特定类型的资源(网页、新闻组)或描述通过哪种机制哪种特定类型的资源(网页、新闻组)或描述通过哪种机制获取该资源。获取该资源。刘刘 海海 燕燕 对于对于IntranetIntranet服务器或万维网服务器上的目标文件,服务器或万维网服务器上的目标文件,可以使用可以使用“统一资源定位符统一资源定位符 (URL)(URL)”地址

    46、(该地址以地址(该地址以“http:/http:/”开始)。开始)。例如,例如,http:/ http:/ 为为 Microsoft Microsoft 网站网站的万维网的万维网 URL URL 地址。地址。15.2.415.2.4 浏览器和浏览器和MAPIMAPI的编程实例的编程实例刘刘 海海 燕燕URLURL的一般格式为:的一般格式为:scheme:/host:port/path?query#fragment scheme:/host:port/path?query#fragment 例如:例如:http:/:80/WebApplication1/WebForm1.http:/:80/We

    47、bApplication1/WebForm1.aspx?name=tom&;amp;age=20#resumeaspx?name=tom&;amp;age=20#resumeschemescheme15.2.415.2.4 浏览器和浏览器和MAPIMAPI的编程实例的编程实例刘刘 海海 燕燕 hosthost,主机,指定的服务器的域名系统,主机,指定的服务器的域名系统(DNS)(DNS)主机名主机名或或 IP IP 地址。地址。portport,端口号,整数,可选,省略时使用方案的默,端口号,整数,可选,省略时使用方案的默认端口,如认端口,如httphttp的默认端口为的默认端口为8080。

    48、pathpath,路径,由零或多个,路径,由零或多个“/ /”符号隔开的字符串,符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。一般用来表示主机上的一个目录或文件地址。15.2.415.2.4 浏览器和浏览器和MAPIMAPI的编程实例的编程实例刘刘 海海 燕燕queryquery,查询,可选,用于给动态网页(如使用,查询,可选,用于给动态网页(如使用CGICGI、ISAPIISAPI、PHP/JSP/ASP/ASP.NETPHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有等技术制作的网页)传递参数,可有多个参数,用多个参数,用“&&”符号隔开,每

    49、个参数的名和值用符号隔开,每个参数的名和值用“= =”符号隔开。符号隔开。fragmentfragment,信息片断,字符串,用于指定网络资源中的片,信息片断,字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用断。例如一个网页中有多个名词解释,可使用fragmentfragment直直接定位到某一名词解释。接定位到某一名词解释。15.2.415.2.4 浏览器和浏览器和MAPIMAPI的编程实例的编程实例刘刘 海海 燕燕MAPI:MAPI: Messaging Application Programming InterfaceMessaging Application Pr

    50、ogramming Interface. MAPI. MAPI的编程实例的编程实例15.2.415.2.4 浏览器和浏览器和MAPIMAPI的编程实例的编程实例MAPIMAPI是一种消息体系结构,可以使多个系统进行信息是一种消息体系结构,可以使多个系统进行信息交换,也可以发送和接收电子邮件。交换,也可以发送和接收电子邮件。MAPIMAPI可以在不同的操可以在不同的操作系统上进行通信,也可以在多个硬件平台之间实现跨越。作系统上进行通信,也可以在多个硬件平台之间实现跨越。刘刘 海海 燕燕15.2.415.2.4 浏览器和浏览器和MAPIMAPI的编程实例的编程实例 微软和其它一些公司开发了微软和其

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C+网络编程高级编程课件.ppt
    链接地址:https://www.163wenku.com/p-2477247.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库