SmsManager/processsocket.h
2025-01-14 10:46:18 +08:00

112 lines
3.3 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;
unsigned char m_ucUserType;
unsigned long m_ulVer;
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 );
void SetUserType(unsigned char ucUserType);
void SetVer(unsigned long ulVer);
// 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_)