📄 cusemoney.h
字号:
#ifndef _CUSEMONEY_H
#define _CUSEMONEY_H
/*
class CWSASocket
{
public:
CWSASocket():m_bServer(false),m_sSocket(0){};
CwSASocket( bool bServer, SOCKET sSocket ):m_bServer(bServer),m_sSocket(sSocket) {};
~CWSASocket(){};
private:
bool m_bServer; //辑滚牢瘤 努扼捞攫飘牢瘤
SOCKET m_sSocket;
};
*/
//#include <winsock2.h>
//#include <string>
#include "stdafx.h"
#include "usertable.h"
#include <list>
#include <algorithm>
using namespace std;
#define WM_USER_ALIVE_PAY WM_USER+101 // 030701 kyo
#pragma pack(push,1)
typedef struct userinfo_pay
{
//Agent沥焊
unsigned long dwConnectionIndex;
char szUserPass[32];
//char szName[21];
//PayServer沥焊
//unsigned long dwGameId;
char szGameId[32];
char szUserId[32];
char szUserType[32];
//unsigned long dwUserType;
//char szGumUser[3][21];
int nAliveTime; //030703 YGI
}USERINFOPAY;
#pragma pack (pop)
class CAsyncClient// : public CWSASocket
{
enum eMSG_TYPE
{
//WM_SOCKET_EVENT = 0x0400+100,
MAX_RECV_BUF_SIZE = 128,
GUM_MSG_DIVISION_HEAD = 0x1D,
GUM_MSG_DIVISION_TAB = 0x09,
GUM_MSG_DIVISION_NULL = 0x00,
GUM_STATE_INIT = 0,
GUM_STATE_RUNNING = 1,
GUM_STATE_CLOSE = 2,
//seq = 0
GUM_MSG_INITALIZED = 1,
GUM_MSG_INIT_FAIL = 88,
GUM_MSG_MESSAGEFORM_WRONG = 99,
GUM_MSG_RESPONS_INITALIZED = 100,
//seq = 1
GUM_MSG_LOGIN_ACCESS = 10,
GUM_MSG_LOGIN_SUCCESS = 11,
GUM_MSG_WRONG_PASS = 12,
GUM_MSG_HAVENO_AUTHORITY = 13,
GUM_MSG_END_OF_DATE = 14,
GUM_MSG_ALREADY_LOGIN = 15,
GUM_MSG_ALL_SPEND_IP = 16,
GUM_MSG_DISCONNECT_USER = 17,
GUM_MSG_END_OF_DATE_1DAY = 18,
GUM_MSG_END_OF_DATE_1DAY2 = 19,
GUM_MSG_LOGOUT_ACCESS = 20,
GUM_MSG_LOGOUT_SUCCESS = 21,
GUM_MSG_LOGOUT_FAIL = 22,
GUM_MSG_ALIVE_USER = 30, //030703 YGI
//seq =-1
GUM_MSG_USER_TIMEOVER = 51,
GUM_MSG_USER_TIMEOVER_1DAY = 52,
GUM_MSG_USER_TIMEOVER_1DAY2 = 53,
GUM_MSG_USER_DIS_TIMEOVER = 61,
GUM_MSG_USER_DIS_TIMEOV_1D = 62,
GUM_MSG_USER_DIS_TIMEOV_1D2 = 63,
GUM_MSG_USER_DIS_OUSER_REQ = 64, //促弗 蜡历狼 夸备肺
}EMSG_TYPE;
//typedef
typedef list<USERINFOPAY> LISTUSER;
typedef list<USERINFOPAY>::iterator LISTUSERIT;
public:
static const char* SERVER_NAME;
static const char* GAME_ID;
static const char* USER_TYPE;
public:
CAsyncClient();
CAsyncClient( const char* strName, const int nGrup, const char* szServerNum, const int nZone);
~CAsyncClient();
SOCKET InitSocket( const char* strIP, const int nPort ); //
int InitConnectPayServer(); // 苞陛辑滚尔 Initialized Message甫 林绊 罐绰促.
void CloseConnection();
int SendInitialMsg2PayServer();
void SetAgentInfo( const char* szName, const int nGroup, const char* szServerNum, const int nZone );
void SetUserInfo( USERINFOPAY& info, const int nCn, const char* szUserId, const char* szUserPass, const char* szGameId, const char* szUserType );
//state
void SetCurrentState( const int nState ) { m_nState = nState;};
int GetCurrentState( ) const
{
return m_nState;
};
bool IsRunning() const
{
if( GUM_STATE_RUNNING == GetCurrentState() ) return true;
return false;
};
//Analysys
int AnalysysMessage( char* szMsg ); // 罐篮 皋矫瘤甫 盒籍秦辑 府畔茄促.
int AnalysysMsgHeader( char* szMsg ); //Seq府畔窍扁
char* AnalysysMsgHeader( char* szMsg, int& nSeq ); //Msgbody何盒父 府畔窍扁
char* AnalysysMsgType( char* szMsgBody, int& nType );
int AnalysysMsgBody( char* szMsgBody , USERINFOPAY& userInfo, int& nRestTime); // analysys Body
//int AnalysysMsgBody_User( char* szMsgBody , USERINFO& userInfo, int& nRestTime)
HWND CreateMsgWindow( WNDPROC messageproc);
int AddPayUser( USERINFOPAY& stUser ); // list俊 蜡历 历厘
void DisconnectUser( USERINFOPAY& stUser );
bool DeletePayUser( USERINFOPAY& stUser ); // list俊辑 蜡历 昏力
list<USERINFOPAY>::iterator
FindUserIterator( const char* szUserName); // list俊辑 秦寸 蜡历狼 馆汗磊 府畔
//030703 YGI
void CheckAliveUser();
void SendAliveMessage( USERINFOPAY& userInfo );
void SendMsgToPayServer( int nType , USERINFOPAY& stUser); //屈侥俊 嘎冕 郴侩阑 焊郴霖促.
int SendPayFormatMessage( char* strMsg ); // GUM俊辑 力矫茄 屈侥俊 嘎绰 巩磊凯阑 send茄促.
void SendKeepaliveMsg(); //蜡瘤 皋矫瘤. 1盒埃拜栏肺 焊郴档废 茄促.
void SendUserLogin( USERINFOPAY& userInfo, const char* szRIP, const char* szVIP , const int nReConnect);
void SendUserLogout( USERINFOPAY& userInfo); //肺弊酒眶秦崔扼
void RecvUserLogin( USERINFOPAY& userInfo); // 肺弊牢 己傍
void RecvUserLoginFail( USERINFOPAY& userInfo, int nType); //肺弊牢 角菩
void RecvUserLogout( USERINFOPAY& userInfo); //肺弊酒眶 夸没
void RecvUserLogoutFail( USERINFOPAY& userInfo ); //肺弊酒眶角菩
void RecvUserAlert( USERINFOPAY& userInfo, int nTime); //蜡历 版绊皋矫瘤
void RecvUserDisconnect( USERINFOPAY& userInfo, int nMsgType); //蜡历 立加 碍力 辆丰
void RecvResponsMessage( SOCKET socket , char* szBuf); //滚欺俊辑 皋矫瘤甫 佬绰促.
USERINFO* FindPayUser( const char* szUserId);
//DB connect
void SendUserLoginSuccess2DB( const DWORD dwConnectionIndex, const char* szUserId );
//Client connect
void SendUser2Client( const DWORD dwConnectionIndex, const char* szUserId, const int nType);
void LoginUser( const int nCn, const char* szUserId, const char* szUserPass , const char* szGameId, const char* szUserType, const char* szUserRealIp, const char* szUserVrIp);
void LogoutUser( const int nCn, const char* szUserName );
void LogoutUser( USERINFO *pUser ); // 秦寸 蜡历甫 苞陛辑厚胶尔 立加 辆丰矫糯
void LogoutAllUser();
list<USERINFOPAY> GetAllUser(){ return m_vtUser; }; //葛电 蜡历郴侩阑 促 霖促.
void ShowError( int nError );
bool IsRightType( int nType );
protected:
//list<USERINFOPAY*> m_vtUser; //蜡历锅龋 抛捞喉
void SetGumHeader( const char* szHeader, const char* szVer )
{
sprintf( m_szGumHeader, "%s/%s", szHeader, szVer);
sprintf( m_szKeepaliveMsg, "%s\t0\0352\theart_beat\t\0", m_szGumHeader );
};
// void SetDivided( const char* szHeaderDivided, const char* szWordDivided, const char* szNULL ){};
LISTUSER m_vtUser; //蜡历锅龋 抛捞喉
char m_szGumHeader[16]; //秦歹器杆
char m_szKeepaliveMsg[128];
private:
static const char dvHeader;
static const char dvWord;
static const char* dvNull;
SOCKET m_sSocket; //苞陛辑滚尔 烹脚窍绰 家墓
char m_strServerName[24]; //辑滚捞抚
int m_nServerGroupNum; //辑滚弊缝锅龋 辑滚悸 锅龋
char m_szServerNum[24]; //辑滚锅龋 IP
int m_nZoneNum; //粮 锅龋 器飘锅龋
int m_nState; //惑怕
CRITICAL_SECTION m_cs;
};
extern CAsyncClient g_cAsyncPay;
extern void RecvReponseGUMP( SOCKET socket );
#endif //_CUSEMONEY_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -