有关ftp文件传送的编程问题
我写的ftp客户端程度,对于传送文件的时候,我的实现如下:
#define MAX_FILE_LEN 65536
bool uc_FtpClient::ftpSendFile(const std::string& strFilePath)
{
std::cout << "begin read file" << std::endl;
char cFile[MAX_FILE_LEN];
memset( cFile, 0, sizeof(cFile) );
long fileLen = m_Objfile.ReadStreamFile(strFilePath, cFile, MAX_FILE_LEN);
if ( 0 > fileLen )
{
std::cout << "Read File Failed!" << std::endl;
return -1;
}
std::cout << "File:" << strFilePath << " Len:" << fileLen << std::endl;
bool bRet = m_objSock.SendData( cFile, fileLen );
return bRet;
}
其中m_Objfile是二进制文件读写的类对象。m_objSock是ftp的数据通道socket类对象。
但只能传送几K大小的文件,如果我要传送几M,几百M甚至几G的文件,该怎么如何实现?请各位大侠指点一二
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
看c版
能不能把相关的代码段贴上来,或者讲一下机制。谢谢
char cFile[MAX_FILE_LEN]; 这样能做到几G?你的栈空间可够大的!根本做不到。
我最近写的MultiGet多线程下载器里实现了ftp下载,可以下大文件,你可以看看,就不细说了。
大哥,这跟文件类简单与否好像没关系吧?主要是实现的机理应该如何
不要用如此简单的文件类。