WEB开发网
开发学院软件开发VC 用WinInet开发Internet客户端应用指南(二) 阅读

用WinInet开发Internet客户端应用指南(二)

 2009-11-11 20:30:03 来源:WEB开发网   
核心提示:二、实现步骤大家知道,每个Internet客户端程序都伴随有一定的目的行为,用WinInet开发Internet客户端应用指南(二),如读文件、写文件、删除文件等等,客户端的程序要实现这些行为的先决条件是建立Internet连接,创建并打开一个CInternetFile对象 打开FindFile或

二、实现步骤

大家知道,每个Internet客户端程序都伴随有一定的目的行为,如读文件、写文件、删除文件等等。客户端的程序要实现这些行为的先决条件是建立Internet连接。然后再根据不同的目的进行具体的操作。为了方便起见,下面这这些张表格针对不同的应用行为列出了所需要的具体操作。其中列出了一般的Internet URL (FTP、或者 HTTP)客户端行为要实现某个目标所必须使用的方法。这张表格的内容来自MSDN。我对部分我认为重要的地方做了补充。

(表一)一个典型的Internet客户端程序的处理流程

目的 方法 结果
开始一个Internet session 创建 CInternetSession 对象 初始化WinInet,并连接服务器
读取或设置 InternetQuery 选项 (如超时或重试次数) 调用 CInternetSession::SetOption 不成功返回FALSE
建立回调函数监视session状态 调用CInternetSession::EnableStatusCallback

建立回调函数

CInternetSession::OnStatusCallback,重写OnStatusCallback,创建自己的回调例程
Internet服务器Intranet服务器或本地文件 调用 CInternetSession::OpenURL 解析并打开到指定服务器的连接,返回CStdioFile(如果你传递的OpenURL是本地文件名)或CInternetFile对象,通过存取这个对象,获得服务器或文件的数据
读文件 调用 CInternetFile::Read 用你提供的Buffer读指定的字节数
异常处理 在 CInternetException 类中处理 处理所有普通的 Internet 异常类型
结束 Internet session 处理 CInternetSession对象 自动清除打开的句柄的连接

(表二)典型的 FTP 客户端程序实现的一般步骤

目的 方法 结果
开始一个FTP会话,建立一个FTP连接 创建一个CInternetSession对象,调用CInternetSession::GetFtpConnection 初始化WinInet

并联接服务器

连接到一个FTP Server 用CInternetSession::GetFtpConnection 返回一个CFtpConnection对象
CD到 FTP 服务器的一个新目录 用CFtpConnection::SetCurrentDirectory CD到FTP服务器的一个

新目录

Find 第一个FTP目录中的文件 创建一个CFtpFileFind对象,调用CFtpFileFind::FindFile,OpenURL函数返回一个只读资源对象;调用CFtpFileFind::FindFile Find第一个文件,如果文件每找到返回FALSE
枚举所有可获得的资源,Find下一个FTP目录中的文件 Find下一个资源,调用CFtpFileFind::FindNextFile直到返回FALSE。 Find下一个文件

如果文件没找到返回FALSE

打开FindFile或FindNextFile找到的文件(用于读写) 调用CFtpConnection::OpenFile,参数为FindFile或FindNextFile返回的文件名 ,创建并打开一个CInternetFile对象 打开FindFile或FindNextFile找到的文件(用于读写),返回一个CInternetFile对象
读写文件 以读方式打开FTP文件,用CInternetFile::Read 使用你指定的缓冲读

指定的字节数

写FTP文件 以写方式打开FTP文件,调用CInternetFile::Write,重写CInternetSession::OnStatusCallback 使用你指定的缓冲写

指定的字节数

改变客户端在服务器上的目录 调用CFtpConnection::SetCurrentDirectory 进入新的目录
获取客户端在服务器上的当前目录 调用CFtpConnection::GetCurrentDirectory 获取目录信息
异常处理 用CInternetException类  处理所有普通的Internet异常类型
结束FTP session 处理CInternetSession对象 自动清除打开的句柄的连接

1 2  下一页

Tags:WinInet 开发 Internet

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接