设为首页 加入收藏

TOP

3.3.6 下载文件
2013-10-07 15:55:21 来源: 作者: 【 】 浏览:90
Tags:3.3.6 下载 文件

3.3.6  下载文件

当用户从FTP服务器下载文件时,使用到的FTP命令是RETR。该命令的用法与上传命令的用法相似。

首先,客户端向服务器发送RETR命令,然后根据获取的文件大小,利用函数Recv()进行接收。

如果接收到的数据小于文件大小,则继续接收,否则关闭数据连接即可。

例如下面的下载文件代码:

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

在上述代码中,也可以使用获取到的文件大小设置接收缓冲区大小,但是这样可能会导致一些不可预见的错误发生。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.3.5 上传文件 下一篇3.3.7 具体实现(1)

评论

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

·工业机器人TCP校准中 (2025-12-25 05:19:17)
·opc 通讯协议与 TCP (2025-12-25 05:19:15)
·labview中tcp/ip通信 (2025-12-25 05:19:13)
·新书介绍《Python数 (2025-12-25 04:49:47)
·怎么利用 Python 进 (2025-12-25 04:49:45)