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

当用户从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("文件下载成功! "); //否则提示文件下载成功

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

猜你喜欢

转载自blog.csdn.net/eyetired/article/details/83552100