Visual C++网络编程经典案例详解 第4章 FTP浏览器 FTP文件处理 下载文件

本文深入讲解了通过FTP协议从服务器下载文件的过程,重点介绍了RETR命令的使用方法及其实现细节,包括如何利用Recv()函数接收数据,并将其写入本地文件,确保文件下载的成功。

当用户从ftp服务器下载文件时
使用到ftp命令是retr
命令用法与上传相似
首先
客户端向服务器发送RETR命令
然后根据获取文件的大小
利用函数Recv()进行接收

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值