网站大量收购闲置独家精品文档,联系QQ:2885784924

安阳工学院计算机科学与信息工程学院Visual C++程序设计课件第7章 网络编程.ppt

安阳工学院计算机科学与信息工程学院Visual C++程序设计课件第7章 网络编程.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 网络编程 学习目标 了解网络编程的方法 理解流式套接字和数据报套接字的区别 理解Windows Sockets的工作原理 了解两种不同的通信方式 掌握利用MFC CSocket类进行网络编程的方法 了解利用MFC CAsyncSocket类进行网络编程的方法 7.1 网络编程概述 7.1.1 Windows Sockets规范 Windows Sockets(即WinSock)规范是90年代初Microsoft公司联合其他几家大公司共同制定的—套在Windows下的二进制兼容网络编程接口规范。 Windows Sockets规范制定的本意是将基础网络抽象出来 。 遵守Windows Sockets规范的网络软件,称之为与windows Sockets兼容。 7.1.2 VC++ 2005网络编程 利用Windows Sockets 网络编程的方法 1.利用Windows Sockets API进行网络编程 麻烦,但灵活 2.利用MFC提供的WinSock类进行网络编程 在MFC中,提供了两个类用来实现对Windows Socket API的封装,从而实现网络编程 (1)CAsyncSocket类 CAsyncSocket,顾名思义是指采用了异步(非阻塞)套接字的类。该类主要是提供给那些具有一定网络编程经验,希望同时拥有Winsock API编程的灵活性和类库编程便利性的用户的。 (2)CScoket类(阻塞) CScoket类是CAsyncSocket类的派生类,该类对Windows Sockets API进行了更多的封装,并且利用CArchive类进行数据传输,从而使利用该类进行数据传输的过程与MFC的串行化一致。 7.2 套接字 套接字(Socket)是一个通信终结点,它是Windows Sockets应用程序用来在网络上发送或接收数据包的对象。一个套接字有自己的类型,并有一个与之相关的应用程序,它还可以有自己的名字。 7.2.1 流式套接字 使用流式套接字的过程: 在两个通信节点间建立连接 节点通过这个连接进行通信 通信完毕后取消连接 流式套接字提供了双向的数据流,并且保证数据流的传输是可靠的、有序的(即:传输的数据顺序的正确性)、无重复的(即:数据包只被传送一次) 最大特点是通信信息能保证按顺序无遗漏地到达目的地。 7.2.2 数据报套接字 数据报套接字也提供双向的数据传输,与流式套接字不同,它用于实现无连接的通信方式。 在传输可靠性要求不高的信息或者通信量较少的信息,则可采用数据报套接字。 7.2.3 IP地址和端口 IP地址是一台计算机在网络上的地址,是一个32位的数字 如202.204.125.5就是由十进制描述的一个IP地址 端口用于标识进程,同一机器上不同的应用程序有不同的端口,则通过“IP地址+端口”的方式可以唯一标识机器的应用程序。 7.3 Windows Sockets的工作原理 Windows Sockets的工作方式为客户/服务器模式 根据连接的方式分为 面向连接——流式套接字 无连接——数据报套接字 7.3.1 面向连接的通信方式 7.3.2 无连接的通信方式 7.5 基于MFC的Windows Sockets编程 7.5.1 编制基于流式套接字网络应用程序的步骤 1.服务器端 服务器端应用程序的设计过程如下: (1)从CSocket类派生两个新类,假设一个新类的名称为CServeSocket,另一个新类的名称为CAcceptSocket。其中,CServeSocket套接字用来监听连接请求,CAcceptSocket套接字是真正用于与客户端进行连接、接收发送数据的套接字。 (2)创建一个CServeSocket类对象。 (3)调用CSocket::Create函数创建一个CServeSocket套接字,并指定一个端口,端口号一般要大于1024。 (4)调用CSocket::Listen函数侦听端口。 (5)在CServeSocket中添加虚函数OnAccept。在OnAccept函数中为每一个连接进来的客户端创建一个新的CAcceptSocket类对象专门用于读写。 (6)在用于读写的CSocket派生类CAcceptSocket的OnReceive函数中进行读写操作。 (7)通讯结束时,调用读写套接字的Close函数关闭为各个客户端分配的读写套接字。 2.客户端 客户端应用程序的设计过程如下: (1)创建一个CSocket类的派生类,用于连接和读写,假设新类的名称为CClientSocket。 (2)调用CSocket::Create函数创建套接字。 (3)调用CSocket::C

您可能关注的文档

文档评论(0)

ormition + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档