109 lines
3.1 KiB
C++
109 lines
3.1 KiB
C++
#if !defined(AFX_PROCESSSOCKET_H__DA328461_864B_4C42_9F2C_024819E95360__INCLUDED_)
|
|
#define AFX_PROCESSSOCKET_H__DA328461_864B_4C42_9F2C_024819E95360__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
// processsocket.h : header file
|
|
//
|
|
|
|
#include "..\public\ProxySocket\AsyncProxySocket.h"
|
|
|
|
#ifdef _M_X64
|
|
#include "..\public\lzo_64\lzo.h"
|
|
#else
|
|
#include "..\public\lzo\lzo.h"
|
|
#endif
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CProcessSocket command target
|
|
|
|
#define PROCESSSOCKET_ERROR WM_USER + 200 //socket的错误通知
|
|
#define PROCESSSOCKET_FRAME WM_USER + 201 //socket收到帧的通知
|
|
|
|
#define PROCESSSOCKET_ERROR_CONNECT 1 //socket连接错误
|
|
#define PROCESSSOCKET_ERROR_PROXY 2 //socket代理错误
|
|
|
|
|
|
|
|
|
|
typedef CTypedPtrList<CPtrList, Socket_Head*> CFrameList;
|
|
|
|
class CProcessSocket : public CAsyncProxySocket
|
|
{
|
|
protected:
|
|
SM_Setup m_Setup;
|
|
CWnd * m_pWnd; //通知消息的Wnd
|
|
BOOL m_bSend; //是否已可以登录
|
|
BOOL m_bConnect;//是否已连接
|
|
CLzo lzo;
|
|
|
|
|
|
CFrameList m_Frame;
|
|
ULONG m_lID;
|
|
long m_lUserID;
|
|
|
|
Socket_Head m_RecvHead; //用于接收Head
|
|
ULONG m_lRecvHead; //已收到的Head字节数
|
|
BOOL m_bRecvFrame; //是否正在收Frame;
|
|
ULONG m_lRecvFrame; //已收到的Frame字节数
|
|
BYTE * m_pRecvFrame; //收到的Frame
|
|
|
|
//超透网关用到
|
|
HINTERNET m_hInternet;
|
|
HINTERNET m_hConnection;
|
|
|
|
int m_lCompress;
|
|
HANDLE m_hHttp;
|
|
|
|
// Attributes
|
|
public:
|
|
|
|
// Operations
|
|
public:
|
|
CProcessSocket();
|
|
virtual ~CProcessSocket();
|
|
|
|
// Overrides
|
|
public:
|
|
void SetCompressType(int lCompressType);
|
|
static int CharHex(TCHAR ch);
|
|
static void HexToAscii( char *pszOrgRandom , char *pszDesRandom );
|
|
static void AsciiToHex( char *pszOrgRandom , char *pszDesRandom , long lLen);
|
|
static DWORD WINAPI Http_Socket( LPVOID lParam );
|
|
void SetUserID(long lUserID);
|
|
void NotifyMainWnd( UINT nMsg , WPARAM wParam , LPARAM lParam );
|
|
BOOL SendFrame( unsigned char lFuncType , unsigned char * pFrame , unsigned long lFrameLen );
|
|
BOOL SendFrameEx( DWORD lFuncType , unsigned char * pFrame , unsigned long lFrameLen );
|
|
void Close();
|
|
BOOL ConnectToServer( SM_Setup setup,BOOL bReConnect=false);
|
|
void SetParent( CWnd * pWnd );
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CProcessSocket)
|
|
public:
|
|
virtual void OnConnect(int nErrorCode);
|
|
virtual void OnSend(int nErrorCode);
|
|
virtual void OnClose(int nErrorCode);
|
|
virtual void OnReceive(int nErrorCode);
|
|
virtual void OnProxyOperationFailed(int nOpID);
|
|
virtual void OnListenFinished(unsigned long &retProxyIp,int &retProxyPort);
|
|
virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0);
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(CProcessSocket)
|
|
// NOTE - the ClassWizard will add and remove member functions here.
|
|
//}}AFX_MSG
|
|
|
|
// Implementation
|
|
protected:
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
//{{AFX_INSERT_LOCATION}}
|
|
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
|
|
#endif // !defined(AFX_PROCESSSOCKET_H__DA328461_864B_4C42_9F2C_024819E95360__INCLUDED_)
|