HINTERNET hSession = InternetOpen("abc", INTERNET_OPEN_TYPE_PRECONFIG,
NULL, NULL, 0);HINTERNET hFtp = InternetConnect(hSession, "aa", 21, "user", "password",
INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);HINTERNET hRes;
BOOL bOK = FtpCommand(hFtp, FALSE, FTP_TRANSFER_TYPE_ASCII,
"REST 1", 0, &hRes);HINTERNET hFile = FtpOpenFile(hFtp, "sn.txt", GENERIC_READ, FTP_TRANSFER_TYPE_BINARY, 0);
DWORD dwRead;
char pBuf[1024];
InternetReadFile(hFile, pBuf, 10, &dwRead);sn.txt的长度为86字节。
不管发送怎样的REST命令,在InternetReadFile时总是从sn.txt的第一个字节开始读的,请问如何解决此问题?谢谢!
NULL, NULL, 0);HINTERNET hFtp = InternetConnect(hSession, "aa", 21, "user", "password",
INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);HINTERNET hRes;
BOOL bOK = FtpCommand(hFtp, FALSE, FTP_TRANSFER_TYPE_ASCII,
"REST 1", 0, &hRes);HINTERNET hFile = FtpOpenFile(hFtp, "sn.txt", GENERIC_READ, FTP_TRANSFER_TYPE_BINARY, 0);
DWORD dwRead;
char pBuf[1024];
InternetReadFile(hFile, pBuf, 10, &dwRead);sn.txt的长度为86字节。
不管发送怎样的REST命令,在InternetReadFile时总是从sn.txt的第一个字节开始读的,请问如何解决此问题?谢谢!
你那个要写成"REST 1\r\n"
请问你有没有用FtpCommand试过发REST命令?有实际经验可能会对这个问题有帮助。
具体请参考RFC 959
实现过程可参考cuteftp下载时的log
pSession=new CInternetSession();
CFtpConnection* pConn=NULL;
pConn=pSession->GetFtpConnection("192.168.100.28","ftpuser","ftpuser");
CString a,b;
a = "E:\temp\begin.mpg";
b = "begin.mpg";
a.Replace("\\","\\\\");
pConn->PutFile(a,b); pConn->Close();
delete pConn;
pSession->Close();
delete pSession;