一般而言,开发Internet服务客户端程序的目的是通过Internet协议(HTTP,FTP)获取网络数据源的信息,微软提供了专门的Win32 Internet扩展接口,也就是WinInet。
1使用Win API函数开发客户端程序
一般流程是,首先通过InternetOpen()函数创建位于根部的HINTERNET句柄,然后才能进一步建立HTTP、FTP会话,使用InternetConnect()函数创建一个指定的会话,初始化HTTP、FTP会话(根据指定的参数决定),并创建一个根句柄的分支,HttpOpenRequest()、FtpOpenFile()、FtpFindFirstFile()等函数将使用InternetConnect()所创建的句柄,建立到指定站点的连接。例子代码如下:
bool testFtpDownload ()
{
// 建立会话
HINTERNET hInternet;
hInternet = InternetOpen("", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if(hInternet == NULL) return false;
// 建立连接
HINTERNET hConnect;
hConnect = InternetConnect(hInternet, "112.128.125.11", INTERNET_INVALID_PORT_NUMBER,
"", "", INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
if(hInternet == NULL) { InternetCloseHandle(hInternet); return false; }
HINTERNET hFtpFile;
hFtpFile = FtpOpenFile(hConnect, "common/ Essential C++中文版.pdf", GENERIC_READ, FTP_TRANSFER_TYPE_BINARY|INTERNET_FLAG_RELOAD, NULL);
if(hFtpFile == NULL) { InternetCloseHandle(hConnect); Intern