文档详情

网络程序设计-第五章.ppt

发布:2017-05-07约1.31万字共45页下载文档
文本预览下载声明
w Ve r s i o n R e q u e s t e d参数用于指定准备加载的Wi n s o c k库的版本。高位字节指定所需要的 Wi n s o c k库的副版本,而低位字节则是主版本。然后,可用宏M A K E W O R D ( X , Y )(其中,x是 高位字节, y是低位字节)方便地获得w Ve r s i o n R e q u e s t e d的正确值。 l p W S A D a t a参数是指向L P W S A D ATA结构的指针, W S A S t a r t u p用其加载的库版本有关的 信息填在这个结构中: * 5.2.4 操作服务器上的目录 使用WinInet API函数可以在FTP服务器上创建和删除目录,当然应用程序应当具有相应的权限。 在调用InternetConnect时,指定具有相应权限的用户名和口令,正确地登录到FTP服务器。 调用FtpCreateDirectory可以在FTP服务器上创建新的目录,函数原型是: BOOL FtpCreateDirectory( IN HINTERNET hFtpSession, //有效的FTP会话句柄 IN LPCSTR lpszDirectory //字符串指针,用于指定要创建的目录路径(名) ); * 调用FtpRemoveDirectory可以删除FTP服务器上的指定的目录,函数原型是: BOOL FtpRemoveDirectory( IN HINTERNET hFtpSession, //有效的FTP会话句柄 IN LPCSTR lpszDirectory //字符串指针,用于指定要删除的目录路径(名) ); 以上两函数的返回值是BOOL型,调用成功,返回TRUE,否则返回FALSE。 应用程序可以使用FtpGetCurrentDirectory函数来决定远方FTP站点的当前工作目录。 * FtpCreateDirectory函数的原型是 BOOL FtpCreateDirectory( IN HINTERNET hFtpSession, // 有效的FTP会话句柄. IN LPCSTR lpszDirectory // 要创建的目录路径. ); FtpRemoveDirectory函数的原型是 BOOL FtpRemoveDirectory( IN HINTERNET hFtpSession, // 有效的FTP会话句柄. IN LPCSTR lpszDirectory // 要删除的目录路径. ); * 5.2.5 下载FTP服务器中的文件 WinInet为客户端应用程序提供了三种从FTP服务器上获取文件的方法。 (1)使用InternetOpenURL和InternetReadFile函数 如果用户确切的知道文件有效的URL,并且应用程序想要更紧密的控制下载的过程,同时在FTP服务器上不需要进行其它的操作,可以使用这种方法。 应用程序直接调用InternetOpenURL函数打开由RUL指定的服务器文件,创建文件句柄,再调用InternetReadFile函数下载文件的内容,这种方法允许应用程序对下载有更强的控制,是通用的下载方法。 * (2)使用FtpOpenFile和InternetReadFile函数 如果应用程序已经调用InternetConnect函数创建了一个到服务器的FTP会话句柄,可以首先调用FtpOpenFile函数打开服务器上的现存文件,再调用InternetReadFile来下载文件,并保持与FTP服务器的连接,因此允许执行更多的其他命令。 在如下两种情况应使用这种下载方法: 应用程序需要从服务器获得一个文件,并把文件信息首先装入应用程序控制的内存缓冲区,而不是直接写到磁盘的一个文件中; 应用程序需要对文件的传送过程进行很好的控制,如下载过程中显示进度指示器。 * FtpOpenFile函数原型是: HINTERNET FtpOpenFile( IN HINTERNET hFtpSession, // Ftp会话句柄. IN LPCSTR lpszFileName, // 字符串指针,指向要访问的远程文件名 IN DWORD fdwAccess, //对文件做的操作,只读或写 IN DWORD dwFlags, //传送方法与缓存方法. IN DWORD dwContext, //环境值. ); 函数返回HINTERNET句柄,初始化对远地文件的访问,如果成功返回一个句柄,供InternetReadFile
显示全部
相似文档