设为首页 加入收藏

TOP

4.3.5 下载文件
2013-10-07 13:01:41 来源: 作者: 【 】 浏览:81
Tags:4.3.5 下载 文件

4.3.5  下载文件

当用户从FTP服务器下载文件时,使用到的FTP命令是RETR。该命令的用法与上传命令的用法相似。首先,客户端向服务器发送RETR命令,然后根据获取的文件大小,利用函数Recv()进行接收。如果接收到的数据小于文件大小则继续接收,否则关闭数据连接即可。获取文件大小和文件名称的方法在4.3.3节中已经讲解,这里不再赘述。下载文件的代码如下:

  1. int lenth;                                      //已经
    获取的文件大小  
  2. CString filename;                               //已经
    获取的文件名称  
  3. int i=0;  
  4. m_archive->WriteString("RETR "+"\r\n");   
  5.                         //调用CArchive类的WriteString()
    函数发送RETR命令  
  6. char buff[1024]={0};            //设置缓冲区  
  7. SOCKET sock;                    //与服务器建立连接成
    功后返回的套接字句柄  
  8. CFile file(filename,CFile::modeReadWrite);  //建立
    文件并指定文件属性为可读可写  
  9. while(lenth!=0)   
  10. {  
  11. ::Recv(sock,buff,1024,NULL);    //在套接字上接收数据到缓冲区中      
  12. file.Write(buff,1024);          //将缓冲区内容写到文件中  
  13. lenthlenth=lenth-1024;               //从文件总
    大小中减去已经接收并写入文件中的大小  
  14. }  
  15. MessageBox("文件下载成功!");      //否则提示文件下载成功 

在代码中,用户也可以使用获取到的文件大小设置接收缓冲区大小,但是这样做会导致一些不可预见的错误发生。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.4.1 建立工程 下一篇4.3.4 上传文件

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: