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

📄 proxysocket.h

📁 接收证券行情数据接口的VC源代码,配合上mystock,可很好了解股票软件的内部源代码
💻 H
字号:
// ProxySocket.h: interface for the CProxySocket class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PROXYSOCKET_H__9BA73A9B_B605_4236_8AD0_80BD16B19FE2__INCLUDED_)
#define AFX_PROXYSOCKET_H__9BA73A9B_B605_4236_8AD0_80BD16B19FE2__INCLUDED_

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

class CProxySocket : public CSocket
{
private:

#pragma pack(1)

	struct sock4req1 
	{ 
		char VN; 
		char CD; 
		unsigned short Port; 
		unsigned long IPAddr; 
		char other[1]; 
	}; 

	struct sock4ans1 
	{ 
		char VN; 
		char CD; 
	}; 

	struct sock5req1 
	{ 
		char Ver; 
		char nMethods; 
		char Methods[255]; 
	}; 

	struct sock5ans1 
	{ 
		char Ver; 
		char Method; 
	}; 

	struct sock5req2 
	{ 
		char Ver; 
		char Cmd; 
		char Rsv; 
		char Atyp; 
		char other[1]; 
	}; 

	struct sock5ans2 
	{ 
		char Ver; 
		char Rep; 
		char Rsv; 
		char Atyp; 
		char other[1]; 
	}; 

	struct authreq 
	{ 
		char Ver; 
		char Ulen; 
		char Name[255]; 
		char PLen; 
		char Pass[255]; 
	}; 

	struct authans 
	{ 
		char Ver; 
		char Status; 
	}; 
#pragma pack()
	
public:
	CProxySocket();
	virtual ~CProxySocket();

	enum MaxLen {
        MaxLenAddress = 256,
        MaxLenUser = 128,
		MaxLenPasswd = 128,
	};

	enum ProxyType {
		TypeNone = 0,
		TypeSocks4 = 1,
		TypeSocks5 = 2,
		TypeHTTP = 3,
	};

	virtual	CString GetLastErrorString( );

	virtual BOOL SetProxyInfo( int nProxyType = TypeNone, LPCTSTR lpszProxyAddress = NULL, UINT nProxyPort = 1080,
								LPCTSTR lpszProxyUser = NULL, LPCTSTR lpszProxyPasswd = NULL );

	virtual BOOL ConnectThroughProxy( LPCTSTR lpszHostAddress, UINT nHostPort );

	virtual BOOL ConnectThroughSocks4(const SOCKADDR* lpSockAddr, int nSockAddrLen);
	virtual BOOL ConnectThroughSocks5(const SOCKADDR* lpSockAddr, int nSockAddrLen);
	virtual BOOL ConnectThroughHTTP(const SOCKADDR* lpSockAddr, int nSockAddrLen);

protected:
	CString m_strLastError;
	struct ProxyInfo
	{
		int		m_nProxyType;
		CString m_strProxyAddress;
		UINT	m_nProxyPort;
		CString m_strProxyUser;
		CString m_strProxyPasswd;
	} m_ProxyInfo;
};

#endif // !defined(AFX_PROXYSOCKET_H__9BA73A9B_B605_4236_8AD0_80BD16B19FE2__INCLUDED_)

⌨️ 快捷键说明

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