📄 mirsocket.h
字号:
#if !defined(_MIRSOCKET_H_)
#define _MIRSOCKET_H_
#pragma once
//#include <winsock2.h>
// MirSocket.h : header file
//
#define MSGBUFFERSIZE 2048
#define MIRVERSION "<mir152>"
#define MSGHEADERSIZE 12
#define MSGLENGTH 1024
typedef struct
{
union
{
DWORD dwFlag;
struct
{
WORD wa;
WORD wb;
};
};
WORD wCmd;
WORD w1;
WORD w2;
WORD w3;
char data[1024];
}MMSG;
enum enmGameStatus
{
MGS_NOCONNECTION,
MGS_GATECONNECTING,
MGS_GATECONNECTED,
MGS_WAITINGCHECKINFO,
MGS_MAKECLIENTINFO,
MGS_WAITINGCHECKPASS,
MGS_CLIENTCHECKPASSED,
MGS_MODIFYPASSWORDWAIT,
MGS_REGNEWACCOUNTWAIT,
MGS_LOGINWAITING,
MGS_SELECTSERVER,
MGS_WAITFORSELCHARADDRESS,
MGS_GOTSELCHARADDRESS,
MGS_SELCHARCONNECTED,
MGS_WAITFORSELCHARVERIFY,
MGS_WAITFORSELCHAR,
MGS_WAITFORGAMESERVERADDRESS,
MGS_GOTGAMESERVERADDRESS,
MGS_GAMESERVERCONNECTING,
MGS_GAMESERVERCONNECTED,
MGS_WAITFORGAMESERVERVERIFY,
MGS_WAITFORENTERGAME,
MGS_ENTEREDGAME,
MGS_GAMEFINISHED
};
enum enmAbortReason
{
AR_CONNECT,
AR_SEND,
AR_RECEIVE,
AR_CLIENTNOTPASS,
AR_BADPASSWORD,
AR_ACCOUNTNOTEXIST,
AR_RETRYTOMANYTIMES,
AR_ACCOUNTINUSE,
AR_NOTGETSELCHARIP,
AR_GETCHRLST,
AR_INVALIDCHRNUMBER,
AR_CANNOTGETGAMESERVERADDRESS,
AR_UNKNOW
};
class CMirSocket //: public CSocket
{
public:
CMirSocket();
virtual ~CMirSocket();
protected:
SOCKET m_Socket;
char * m_RecvBuffer;
char * m_ConvBuffer;
char * m_SendBuffer;
MMSG msg;
long m_GameState;
char m_msgflag;
public:
BOOL IOCtl( long lCommand, DWORD* lpArgument );
virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0);
virtual void Close();
virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0);
BOOL Connect(LPCTSTR ip,unsigned short port);
BOOL Create();
int GetString(char *string);
char GetMsgFlag();
int SendString(char * string );
int SendMsg(MMSG * pmsg );
int SendGateMsg(MMSG * pmsg );
int RecvString(char * string, int maxlen );
int RecvMsg(MMSG * pmsg );
int RecvGateMsg(MMSG * pmsg );
static char int2hex(int v);
static int hex2int(char c);
static char ucase(char c);
static int CodeGameCode( BYTE * in, int size, BYTE * out );
static int CodeGateCode(char *in, char *out);
static int UnGameCode(char*p, BYTE*out);
static int UnGateCode(char *in, char *out);
static int UnNameCode( char * in, char * out );
CString m_StringList[20];
};
#endif // !defined(_MIRSOCKET_H_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -