网络编程技术(西电课件)

上传人:宝路 文档编号:47548848 上传时间:2018-07-02 格式:PPT 页数:65 大小:1.13MB
返回 下载 相关 举报
网络编程技术(西电课件)_第1页
第1页 / 共65页
网络编程技术(西电课件)_第2页
第2页 / 共65页
网络编程技术(西电课件)_第3页
第3页 / 共65页
网络编程技术(西电课件)_第4页
第4页 / 共65页
网络编程技术(西电课件)_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《网络编程技术(西电课件)》由会员分享,可在线阅读,更多相关《网络编程技术(西电课件)(65页珍藏版)》请在金锄头文库上搜索。

1、1第6章 开发Internet应用程序 Internet应用程序的开发通常包括 Internet服务端和客户端的应用程序, Microsoft提供了大量的API函数来支持这 两种程序,客户端应用程序主要通过 Internet协议(如Gopher,FTP,HTTP等)来从 网络服务器上获取数据,提供访问 Internet的功能,服务器端应用程序则用 来支持HTTP、FTP或Gopher等类型的服 务你了解FTP协议吗?2你了解FTP协议吗?3FTP客户端 = TCP客户端 + 固定文字响应规范FTP协议4服务器回显客户端TCP连接 x.x.x.x 21 根据回显输入 Connecting to

2、x.x.x.x, Port 21 Connected. Waiting for response.220 Microsoft FTP ServiceUSER user1331 Password required for user1.PASS xxxxxx 230 User user1 logged in.LIST150 Opening ASCII mode data connection for /bin/ls.226 Transfer complete.Transfer done: 125 bytes in 0.016 secs (7.81 k/sec)GET file.txt这是第五章利用

3、CAsyncSocket类实现的TCP客户端按照FTP协议要求,给FTP服务器发送用户名106.1 Internet应用程序开发的几种类型 使用WinInet类开发Internet应用程序:WinInet类支持 HTTP、FTP和Gopher等标准的协议 使用Windows Socket开发Internet应用程序:Winsock 标准定义了一个DLL接口来连接Internet,MFC使用 CAsyncSocket和CSocket类对接口进行了封装。使用消息收发API(MAPI:Message API) 开发Internet应 用程序:使用MAPI可以很方便的向其他应用程序发 送电子邮件、语音

4、邮件或传真等功能 116.2 WinInet开发简介 用WinInet开发程 序的优点 隐藏协议细节,简化编程:可不必深入了解协议,而 使用WinSocket编程,需理解网络通信及协议基本原理 熟悉的编程接口:WinInet API函数和很多WinAPI函数很 相似,这对有编程经验的程序员来说是很方便的。稳定性好,不要求程序与底层直接联系:WinInet隐藏 了协议的具体细节,使得程序不必直接使用各种协议支持数据缓存:WinInet函数为所有的协议提供缓存能 力,程序员只需关心数据而不用去管理数据缓存 支持多线程:由于WinInet函数在内部处理多线程的并 发问题,因此WinInet函数支持多

5、线程,在多线程中可 以调用各种WinInet函数而不用担心发生问题或死锁 126.3 WinInet类介绍 WinInet类是一个总称,目前的版本中分为四组 CInternetSession类 CInternetConnection (连接类) CFileFind类(Internet文件查找类) CInternetFile类和CGopherLocator类 136.3.1 CInternetSession类 CInternetSession类直接继承自CObject类 ,该类用来建立与某个Internet服务器的 会话。还可以向代理服务器描述连接, 如果应用程序所使用的Internet连接必须

6、 保持一段时间,则可以在CWinApp类中 创建相应的CInternetSession成员 14QueryOption提供一个可能的错误检测判断 SetOption设置Internet会话的选项 OpenURL设置URL,并对其进行分析 GetFtpConnection打开一个FTP会话并进行连接 GetHttpConnection打开HTTP服务器并进行连接 GetGopherConnection打开Gopher服务器并进行连接 EnableStatusCallback建立异步操作的状态回调 ServiceTypeFromHandle 通过Internet句柄返回服务器类型 GetConte

7、xt获取Internet和应用程序会话句柄 Close关闭Internet连接CInternetSession类 成员函数156.3.2 CInternetConnection类 包括CInternetConnection类及其派生类 CHttpConnection、CFtpConnection和 CGopherConnection类,这些类帮助用户管理与Internet服务器的连接 ,同时还提供一些函数完成和响应服务器的 通信 16CInternetConnection:用于管理与Internet服务器的连接 CFtpConnection:用于管理与FTP服务器的连接,可以 对服务器上的文件

8、和目录进行直接操作 CGopherConnection:管理与Gopher服务器的连接 CHttpConnection:管理与HTTP服务器的连接连接类及其 派生类 176.3.3 CInternetFile类 包括CInternetFile类及其派生类CHttpFile、 CGopherFile。这些类实现对远程系统上的文 件的存取工作。文件类还包含CFileFind类及其派生类 CFtpFileFind、CGopherFileFind类。CFileFind类 直接继承于CObject类,这些类实现对本地和 远程系统上的文件的搜索和定位工作。 18CInternetFile:允许对使用Int

9、ernet协议的远程系统中的 文件进行操作 CGopherFile:为在Gopher服务器上进行文件检索和读取 操作提供支持 CHttpFile:提供对HTTP服务器上的文件进行操作的支持 CFindFile:文文件检索提供支持 CFtpFileFind:为在FTP服务器上进行的文件检索操作提 供支持 CGopherFileFind:为在Gopher服务器上进行的文件检索 操作提供支持文件类说明 196.3.4 CGopherLocator类 在从Gopher服务器中获取信息之前 ,必须先获得该服务器的定位器,而 CGopherLocator类的主要功能就是从 Gopher服务器中得到定位并确

10、定定位 器的类型。206.4 用WinInet类开发应用程序 编写支持Internet的应用程序一般步骤: (1)创建一个CInternetSession对象:由于Internet 会话是通过CInternetConection类的对象实现的 ,因此首先要创建一个CInternetSession对象, 建立一个Internet会话。 (2) 查询或设置Internet选项:在连接时,有时还 要查询或设置Internet 选项,这个工作可以通过 QueryOption或SetOption函数来完成。这个步骤 是可选的。21(3)建立与服务器的连接:客户应用程序要与服 务器协同工作,在创建了CIn

11、ternetSession对象 后,就需要建立到服务器的连接。根据不同的 协议,可选用GetFtpConnect、GetHttpConnect和 GetGopherConnect三种方法中的一种。(4)向用户反馈当前数据处理的进程信息:有时 客户的应用程序在进行某些操作时,要耗费较 长的时间,因此需要向用户反馈当前的状态, 这个工作由EnableStatusCallback函数来完成,此 时还要重载OnStatusCallBack函数以实现回调函 数的功能。22(5)创建文件检索类对象,对服务器进行检索: 例如对于FTP协议可以调用CFTPFileFind类来对 FTP服务器上的文件进行查询,

12、然后全部列出来(6)创建CInternetFile实例:调用CInternetSession 类的成员函数OpenURL建立与服务器的连接, 函数返回一个CInternetFile指针。 (7)文件读写操作:调用CInternetFile:Read或 CInternetFile:Write函数对所得到得服务器文件 进行读写操作。23(8)异常处理:为提高应用程序的可靠性和容错 性,必须对可能出现的问题进行处理,这种处 理通常是通过调用CInternetException类的对象 对目前可知的异常进行处理。(9)结束:调用CInternetSession:Close结束会话 并销毁CIntern

13、etSession对象。 创建CInternetSession类对象 创建CInternetSession类对象,将创建并初始化Internet 会话。像其它类一样,创建CInternetSession类对象需要 执行该类的构造函数,它的原型是: CInternetSession(LPCTSTR pstrAgent = NULL, /标识标识 所有者DWORD dwContext = 1, /允许许消息回调调函数DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS, /注册表默认认LPCTSTR pstrProxyName = NULL, /采用哪个代

14、理LPCTSTR pstrProxyBypass = NULL,/跳过过某些DWORD dwFlags = 0 );CInternetSession示例25CInternetSession* pSession; /定义会话对象指针变量pSession=new CInternetSession( / 创建Internet会话类对象 AfxGetAppName(), 1, PRE_CONFIG_INTERNET_ACCESS);查询或设置Internet请求选项创建CInternetSession类对象后,可以调 用它的QueryOption成员函数查询 Internet请求选项,调用它的SetO

15、ption成 员函数来设置这些选项。创建连接类对象通过调用CInternetSession对象的 GetFtpConnection、 GetHttpConnection、 GetGopherConnection成员函数,可以 分别建立CInternetSession对象与网络上 FTP、HTTP、和GOPHER服务器的连接。 并分别创建CFtpConnection、 CHttpConnection、 CGopherConnection类的对象,来代表这 三种连接。 28CFtpConnection* pConnection; /定义连接对象指针变量/pSession是已建立的CInternet

16、Session类实例 /m_strFtp存放了FTP服务器域名 /m_strName 存放了用户名 /m_strPwd存放了密码pConnection=pSession- GetFtpConnection(m_strFtp,m_strName,m_ strPwd);创建连接类的示例使用文件检索类CFtpFileFind类和CGopherFileFind类分别 封装了对于FTP和Gopher服务器的文件检索 操作。它们的基类是CFileFind类。创建了连 接对象后,可以进一步创建文件检索类对象 ,并使用该对象的方法实现对服务器的文件 检索。创建文件检索类的对象实例一般直接调用CFtpFileFind类的构造函数创建该类 的对象实例。应当将前面所创建的FTP连接对象指针 作为参数。构造函数的原型是:CFtpFileFind(CFtpConnection* pConnection, / 连接对象指针DWORD dwContext = 1); / 表示此操作的环境值例如: CFtpFile

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号