www.pudn.com > download.rar > FTPDownload.h


// FTPDownload.h: interface for the CFTPDownload class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_FTPDOWNLOAD_H__313DAFCA_57E0_4C62_8E29_CF1A3C79260F__INCLUDED_) 
#define AFX_FTPDOWNLOAD_H__313DAFCA_57E0_4C62_8E29_CF1A3C79260F__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
 
 
typedef struct FTPDOWNLOADSTATE{ 
    LONG	range[20]; 
	LONG    threadsize[10]; 
    LONG    wcsize[10]; 
}FTPDOWNLOADSTATE; 
 
 
 
class CFTPDownload   
{ 
public: 
	CFTPDownload(); 
	virtual ~CFTPDownload(); 
	void Begin(CString Allurl, CString Saveas, int nParts,CString User,CString Pass); 
	BOOL AnalyseURL(CString Allurl); 
	BOOL SendRequest(); 
	void SendInf(CString strSend); 
	void SizeOf(CString strRead); 
	BOOL AnalyseReceive(CString strRead); 
	void CreateThread(); 
	void Finish(); 
	void ThreadFunc(int index); 
	void OnCancel(); 
 
public: 
    CString m_strServer;//服务器 
    CString m_strObject;//文件路径 
	CString m_strUser;//用户名 
	CString m_strPass;//密码 
	CString m_strSavePath;//保存路径 
	int m_nParts;//线程数 
	int m_Port;//端口 
	CSocket  FSocket;//套接字 
    BOOL     m_bResume;//是否断点续传 
	FTPDOWNLOADSTATE m_state;//文件结构 
    HANDLE m_hThread[10];//分线程 
	HANDLE m_hNotify;//主线程 
	BOOL m_bTerminate[10];//是否已经暂停 
	LONG m_index;//线程编号 
 
	CString   m_strTempSavePath;//临时文件路径 
	char	 ReadBuf[1025];//存储缓存 
	DWORD filesize;//文件大小 
	CString strSend,strRead;//发送请求与接受请求字串 
	DWORD dwsize[10];//分线程大小 
	DWORD hh[10];//进度现实 
	DWORD m_sum[10];//完成大小 
 
 
}; 
 
#endif // !defined(AFX_FTPDOWNLOAD_H__313DAFCA_57E0_4C62_8E29_CF1A3C79260F__INCLUDED_)