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

📄 mysocket.h

📁 AsynSocketDemo.rar网络代码,可以设置代理,ssl加密. AsynSocketDemo.rar网络代码,可以设置代理,ssl加密. AsynSocketDemo.rar网络代码,
💻 H
字号:
// MySocket.h: Schnittstelle f黵 die Klasse CMySocket.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MYSOCKET_H__D972BDE0_B82B_4AAD_8232_2A5BAF040129__INCLUDED_)
#define AFX_MYSOCKET_H__D972BDE0_B82B_4AAD_8232_2A5BAF040129__INCLUDED_

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

#include "AsyncSocketEx.h"
#include "AsyncProxySocketLayer.h"
#include "AsyncSslSocketLayer.h"

class CMySocket : public CAsyncSocketEx
{
public:
	enum
	{
		HTTP_STATE_INIT=0,
		HTTP_STATE_CONNECTING,
		HTTP_STATE_CONNECTED,
		HTTP_STATE_GETDATAED
	};
	BOOL AddSslCertHashToTrustedList(unsigned char * pHash);
	virtual void OnConnect(int nErrorCode);
	virtual void OnReceive(int nErrorCode);
	virtual void OnClose(int nErrorCode);
	CAsyncProxySocketLayer *m_pProxyLayer;
	CAsyncSslSocketLayer *m_pSslLayer;
	int OnLayerCallback(const CAsyncSocketExLayer *pLayer, int nType, int nParam1, int nParam2);

	typedef std::list<unsigned char*> t_HashList;
	CMySocket(CEdit *pResponse, t_HashList *pSslTrustedCertHashList);
	virtual ~CMySocket();

	bool init( string url, __int64 firstRange = 0, string cookie = "", string referer = "", string userAgent = "", string user = "", string password = "", string extraHeader = "");

	string getHostAddr() { return m_host; };
	unsigned short getHostPort() { return m_port; };
private:	
	void sendRequest( string urlPath, string host, unsigned short port, __int64 firstRange = 0, string cookie = "",  \
										  string referer = "", string userAgent = "", string user = "", string password = "",  \
										  string extraHeader = "" );
	bool parseURL( string url, string &urlPath, string &host, string fileName, unsigned short &port );
	int  parseHttpHead( string buffer, int size, int &headSize);

protected:
	int     m_state;
	void AddStringToLog(LPCTSTR pszString);

	t_HashList *m_pSslTrustedCertHashList;
	CEdit *m_pResponse;

//add by zx  http
	__int64 m_downloadLength;
	int		m_headSize;
	__int64 m_contentLength;
	DWORD   m_beginTick;
	DWORD	m_lastTick;

	string			m_urlPath;
	string			m_fileName;
	string			m_host;
	unsigned short	m_port;
	__int64			m_firstRange;
	string			m_cookie;
	string			m_referer;
	string			m_userAgent;
	string			m_user;
	string			m_password;
	string			m_extraHeader;
};

#endif // !defined(AFX_MYSOCKET_H__D972BDE0_B82B_4AAD_8232_2A5BAF040129__INCLUDED_)

⌨️ 快捷键说明

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