ProxySocket.h
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. // ProxySocket.h: interface for the CProxySocket class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_PROXYSOCKET_H__9BA73A9B_B605_4236_8AD0_80BD16B19FE2__INCLUDED_)
  5. #define AFX_PROXYSOCKET_H__9BA73A9B_B605_4236_8AD0_80BD16B19FE2__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. class CProxySocket : public CSocket
  10. {
  11. private:
  12. #pragma pack(1)
  13. struct sock4req1 
  14. char VN; 
  15. char CD; 
  16. unsigned short Port; 
  17. unsigned long IPAddr; 
  18. char other[1]; 
  19. }; 
  20. struct sock4ans1 
  21. char VN; 
  22. char CD; 
  23. }; 
  24. struct sock5req1 
  25. char Ver; 
  26. char nMethods; 
  27. char Methods[255]; 
  28. }; 
  29. struct sock5ans1 
  30. char Ver; 
  31. char Method; 
  32. }; 
  33. struct sock5req2 
  34. char Ver; 
  35. char Cmd; 
  36. char Rsv; 
  37. char Atyp; 
  38. char other[1]; 
  39. }; 
  40. struct sock5ans2 
  41. char Ver; 
  42. char Rep; 
  43. char Rsv; 
  44. char Atyp; 
  45. char other[1]; 
  46. }; 
  47. struct authreq 
  48. char Ver; 
  49. char Ulen; 
  50. char Name[255]; 
  51. char PLen; 
  52. char Pass[255]; 
  53. }; 
  54. struct authans 
  55. char Ver; 
  56. char Status; 
  57. }; 
  58. #pragma pack()
  59. public:
  60. CProxySocket();
  61. virtual ~CProxySocket();
  62. enum MaxLen {
  63.         MaxLenAddress = 256,
  64.         MaxLenUser = 128,
  65. MaxLenPasswd = 128,
  66. };
  67. enum ProxyType {
  68. TypeNone = 0,
  69. TypeSocks4 = 1,
  70. TypeSocks5 = 2,
  71. TypeHTTP = 3,
  72. };
  73. virtual CString GetLastErrorString( );
  74. virtual BOOL SetProxyInfo( int nProxyType = TypeNone, LPCTSTR lpszProxyAddress = NULL, UINT nProxyPort = 1080,
  75. LPCTSTR lpszProxyUser = NULL, LPCTSTR lpszProxyPasswd = NULL );
  76. virtual BOOL ConnectThroughProxy( LPCTSTR lpszHostAddress, UINT nHostPort );
  77. virtual BOOL ConnectThroughSocks4(const SOCKADDR* lpSockAddr, int nSockAddrLen);
  78. virtual BOOL ConnectThroughSocks5(const SOCKADDR* lpSockAddr, int nSockAddrLen);
  79. virtual BOOL ConnectThroughHTTP(const SOCKADDR* lpSockAddr, int nSockAddrLen);
  80. protected:
  81. CString m_strLastError;
  82. struct ProxyInfo
  83. {
  84. int m_nProxyType;
  85. CString m_strProxyAddress;
  86. UINT m_nProxyPort;
  87. CString m_strProxyUser;
  88. CString m_strProxyPasswd;
  89. } m_ProxyInfo;
  90. };
  91. #endif // !defined(AFX_PROXYSOCKET_H__9BA73A9B_B605_4236_8AD0_80BD16B19FE2__INCLUDED_)