httpget.h

来自「此程式利用ftp與http協定提供多線程下載及斷點續傳功能」· C头文件 代码 · 共 76 行

H
76
字号
// CHttpGet.h: CHttpGet类定义.
//
#ifndef _HTTPGET_H__INCLUDED
#define _HTTPGET_H__INCLUDED

class CHttpSect
{
public:
    CString  szProxyAddr;     // 理服务器地址.
    CString  szHostAddr;      // Host地址.
    int      nProxyPort;      // 代理服务端口号.
    int      nHostPort;       // Host端口号.
    CString  szHttpAddr;      // Http文件地址.
    CString  szHttpFilename;  // Http文件名.
    CString  szDesFilename;   // 下载后的文件名.
	DWORD    nStart;          // 分割的起始位置.
    DWORD    nEnd;            // 分割的起始位置.
	DWORD    bProxyMode;      // 下载模态. 
};

class CHttpGet  
{
public:
	CHttpGet();
	virtual ~CHttpGet();

private:
	CHttpSect *sectinfo;
	static int m_nCount;
	static UINT ThreadDownLoad(void* pParam);

private:
	static DWORD m_nFileLength;

private:
	static SOCKET ConnectHttpProxy(CString strProxyAddr,int nPort);
	static SOCKET ConnectHttpNonProxy(CString strHostAddr,int nPort);
	static BOOL SendHttpHeader(SOCKET hSocket,CString strHostAddr,
				CString strHttpAddr,CString strHttpFilename,DWORD nPos);
	static DWORD GetHttpHeader(SOCKET sckDest,char *str);
	static DWORD GetFileLength(char *httpHeader);
	static BOOL SocketSend(SOCKET sckDest,CString szHttp);

	BOOL FileCombine(CHttpSect *pInfo, FILE *fpwrite);

public:
	BOOL HttpDownLoadProxy(
			CString strProxyAddr,
			int nProxyPort,
		    CString strHostAddr,
			CString strHttpAddr,
			CString strHttpFilename,
			CString strWriteFileName,
			int nSectNum);

	BOOL HttpDownLoadNonProxy(
		    CString strHostAddr,
			CString strHttpAddr,
			CString strHttpFilename,
			CString strWriteFileName,
			int nSectNum);

	BOOL HttpDownLoad(
			CString strProxyAddr,
			int nProxyPort,
		    CString strHostAddr,
			int nHostPort,
			CString strHttpAddr,
			CString strHttpFilename,
			CString strWriteFileName,
			int nSectNum,
			BOOL bProxy);
};

#endif

⌨️ 快捷键说明

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