WinInet和FTP

WinInet和FTP

(1)WinInet接口(含HTTP、FTP)及FTP函数层次关系

(2)Ftp函数介绍

  ①InternetOpen——初始化,它告诉 Internet DLL 初始化内部数据结构并准备接收应用程序之后的其他调用。

参数

含义

LPCTSTR lpszAgent

调用WinInet函数的应用程序名字,在HTTP协议中作为用户代理项

DWORD   dwAccessType

访问要求类型:

INTERNET_OPEN_TYPE_DIRECT:解析所有本地主机,使用直接连接网络。

INTERNET_OPEN_TYPE_PRECONFIG:获取代理或直接从注册表中的配置,使用代理连接网络。

INTERNET_OPEN_TYEP_PRECONFIG_WITH_NO_AUTOPROXY:返回注册表中代理或直接配置,并防止Microsoft Jscript或INS文件的使用

INTERNET_OPEN_TYPE_PROXY:为代理传递请求

LPCTSTR lpszProxyName

当dwAccessType指定为INTERNET_OPEN_TYPE_PROXY时,为代理服务器名字。

LPCTSTR lpszProxyBypass

指定一个字符串,它提定一个可选的主机名列表或IP地址

DWORD   dwFlags

INTERNET_FLAG_ASYNC:仅作用于在该函数返回句柄的子句柄上的异步请求

INTERNET_FLAG_FROM_CACHE:不做网络请求,所以的实体由缓存给出,如果请求的条目不在缓存中,会返回ERROR_FILE_NOT_FOUND错误。

INTERNET_FLAG_OFFLINE:与INTERNET_FLAG_FROM_CACHE一样。

    举例:hIntSession = InternetOpen(szAppName,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,INTERNET_FLAG_ASYNC);

  ②InternetConnect——建立 Internet 的连接,返回连接句柄

参数

含义

HINTERNET hInternet

InternetOpen返回的句柄

LPCTSTR       lpszServerName

连接的IP或者主机名

INTERNET_PORT nServerPort

连接的端口。如0,则为默认端口

LPCTSTR       lpszUsername

用户名,如无置NULL

LPCTSTR       lpszPassword

密码,如无置NULL

DWORD         dwService

使用的服务类型,可以使用以下

INTERNET_SERVICE_FTP(1):连接到一个FTP服务器

INTERNET_SERVICE_GOPHER(2):Gopher服务器

INTERNET_SERVICE_HTTP(3):连接到一个 HTTP 服务器上

DWORD         dwFlags

文档传输形式及缓存标记。一般置0。

DWORD_PTR     dwContext

当使用回叫信号时, 用来识别应用程序的前后关系

返回值:非0——成功;0——失败,要用InternetCloseHandle来关闭这个句柄

  ③FtpFindFirstFile——是用来设置ftp当前目录的

参数

含义

HINTERNET hConnect

InternetConnect返回的FTP会话句柄

LPCTSTR lpszSearchFile

在FTP服务器上特定的目录里,要查询的指定名称的目录或文件名的文件,还可以使用通配符查找(如*、?)

LPWIN32_FIND_DATA lpFindFileData

就是用来保存查找后,所返回的文件的信息

DWORD         dwFlags

文档传输形式及缓存标记。一般置0。

DWORD_PTR     dwContext

当使用回叫信号时, 用来识别应用程序的前后关系。 一般为0

返回值:有效句柄表示成功。NULL表示失败,可用GetLastError返回错误代码。

  ④InternetFindNextFile——查找下一个文件或目录

   参数

含义

HINTERNET hConnect

hFind 是 FtpFindFirstFile 调用所返回的句柄

LPWIN32_FIND_DATA lpFindFileData

用来保存查找后,所返回的文件的信息

返回值:如果调用成功, 返回 True,否则为False,可进一步调用GetLastError查询错误代码,如果为 ERROR_NO_MORE_FILES表明再没有文件存在了。边查找,边可以从lpFindFileData提取文件名/目录名。

  ⑤FtpGetFile——下载文件到本地磁盘

参数

含义

HINTERNET hConnect

InternetConnect返回的FTP会话句柄

LPCTSTR lpszRemoteFile

FTP服务器上的文件名

LPCTSTR lpszNewFile

本地机上创建的文件

BOOL fFailIfExists

0——替换本地文件

1——如果本地文件已经存在则取消

DWORD dwFlagsAndAttributes

用来指定本地文件的文件属性(详细参考CreateFile函数)

FILE_ATTRIBUTE_NORMAL、FILE_ATTRIBUTE_HIDDEN、

FILE_ATTRIBUTE_READONLY、FILE_ATTRIBUTE_ARCHIVE等

DWORD dwFlags

FTP_TRANSFER_TYPE_ASCII(1):用ASCII传输文件

FTP_TRANSFER_TYPE_BINARY(2):是用二进制传输文件

DWORD dwContext

当使用回叫信号时, 用来识别应用程序的前后关系。 一般为0

返回值:有效句柄表示成功。NULL表示失败,可用GetLastError返回错误代码。

猜你喜欢

转载自blog.csdn.net/CherishPrecious/article/details/81664933