⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httpdownload.h

📁 网络蚂蚁的代码
💻 H
字号:
// HTTPDownload.h: interface for the CHTTPDownload class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_HTTPDOWNLOAD_H__BA195238_6DC5_4491_9173_FEC73B994BDC__INCLUDED_)
#define AFX_HTTPDOWNLOAD_H__BA195238_6DC5_4491_9173_FEC73B994BDC__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <afxtempl.h>
#include <afxmt.h>

//This struct is used to save the uncomplished task's info
//Now this program can only start a task once a time.
typedef struct tagDOWNLOADSTATE{
	CString url;
	CString localfile;
	CTime   time;
	LONG	length;
	LONG	range[8];
}DOWNLOADSTATE,*LPDOWNLOADSTATE;

#define DEFAULT_HTTP_PORT  80

// HTTP STATUS CODE分类
const UINT	HTTP_OK			= 0;
const UINT	HTTP_ERROR		= 1;
const UINT	HTTP_REDIRECT	= 2;
const UINT	HTTP_FAIL		= 3;

// 发送请求
const UINT SENDREQUEST_SUCCESS	= 0; // 成功
const UINT SENDREQUEST_ERROR	= 1; // 一般网络错误,可以重试
const UINT SENDREQUEST_STOP		= 2; // 中途停止(用户中断) (不用重试)
const UINT SENDREQUEST_FAIL		= 3; // 失败 (不用重试)	 

class CHTTPDownload  
{
public:
	UINT ThreadFunc(int index);
	CTime GetTime(LPCTSTR lpszTime);
	UINT GetInfo(LPCTSTR lpszHeader, DWORD &dwContentLength, DWORD &dwStatusCode, CTime &TimeLastModified);
	BOOL StartTask(CString remoteurl, CString localfile);
	CHTTPDownload();
	virtual ~CHTTPDownload();
public:
	CString GetLine(char* lpData, int& ndx);
	int GetHeadLength(char* lpData);
	UINT SendRequest(BOOL bHead = FALSE);
	BOOL ParseURL(CString str);
	CTypedPtrList<CPtrList, CAsyncSocket*> m_lsTask;
	CString m_strSavePath;
	CString m_strTempSavePath;
	DOWNLOADSTATE m_state;
	BOOL m_bTerminate[4];

	CString m_strHead;
	CSocket m_pSocket;
	CString m_strServer;
	CString m_strObject;
	CString m_strReferer;
	CString m_strDownloadUrl;
	CTime   m_TimeLastModified;
	DWORD	m_dwDownloadSize;
	BOOL	m_bSupportResume;
	BOOL	m_bResume;
	DWORD	m_dwFileSize;
	UINT m_nPort;

	CCriticalSection m_cs;
	LONG m_index;
};

#endif // !defined(AFX_HTTPDOWNLOAD_H__BA195238_6DC5_4491_9173_FEC73B994BDC__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -