📄 cmclientsocket.h
字号:
#ifndef __MATRIX_CLIENTSOCKET_H
#define __MATRIX_CLIENTSOCKET_H
//#include <MatrixCore/System/CMException.h>
//using namespace MatrixCore::Network;
using namespace MatrixCore::System;
namespace MatrixCore
{
namespace Network
{
class CMCQueue;
class CMPackQueue;
class CMWorkerThread;
class CMPacket;
enum SockState
{
DEF_NOCMD = 0x00, // 扁夯 惑怕.
DEF_CONNECTING, // 楷搬矫档吝.
DEF_CONNECTFAIL, // connect 俊矾
DEF_CONNECTED, // 楷搬 己傍.
DEF_REJECTCONNECT, // 辑滚俊辑 楷搬 芭何 (盔拜 哪腔磐啊 救难廉 乐促.
DEF_CLOSED, // 辑滚螟俊辑 立加阑 辆丰窍看促.
DEF_TIMEOUT // 矫埃 檬苞.
};
class CMClientSocket : public CMThread
{
public:
CMClientSocket();
virtual ~CMClientSocket();
bool Initialize(CMCQueue *pQueue,LPTHREAD_START_ROUTINE StartRoutine = NULL);
LPTSTR GetMyIP(); // 磊扁 磊脚狼 ip甫 备秦辰促.
void Close();
BOOL Connect(char *cIP, short sPort);
BOOL SendMsg(char *sendbuff, int size);
void run();
BOOL _iOnRead(unsigned short *sId,unsigned short *sGameType);
BOOL UnSendDataMsg( SOCKET s );
void StopThread();
BOOL bSelectConnect();
BOOL bReadyThead();
int GetConnectInfo();
SOCKET* GetListenSocket()
{
return &m_hConnectSocket;
}
void close();
int m_WSAErr; // 府矫宏 俊矾.
DWORD m_dwBufferSize; // 单捞鸥狼 弥绊 农扁. PACKETBUFFERMAXSIZE - PACKETHEADERSIZE
char m_pRcvBuffer[PACKETBUFFERMAXSIZE]; // 府矫宏 滚欺.PACKETBUFFERMAXSIZE
char m_cStatus;
DWORD m_dwCompleteReadSize; // 茄俺菩哦阑 促佬篮 荤捞令.
DWORD m_dwTotalReadSize; // 傈眉 佬绊 乐绰 荤捞令.
DWORD m_dwReadSize;
CMWorkerThread *m_pThread;
// CMDebug *m_pClientSockDebug;
CMCQueue *m_pUnSendData;
CMCQueue *m_pQueue; // 府矫宏 钮捞促.
CMPacket *m_pEditPacket;
DWORD m_dwID; // 荤侩磊付促 罚待 绊蜡 酒捞叼.
static DWORD m_dwRandomID ; // 荤侩磊付促 罚待 绊蜡 酒捞叼 墨款磐.
BOOL m_IsStart; //Connect秦档 登绰啊? 惑怕蔼. TRUE搁 CONNECT啊瓷.
bool m_stThreadLoop;
char m_MyIP[16];
HANDLE m_hEvent[2];
SOCKET m_hConnectSocket;
SockState m_sSockState;
protected:
static DWORD WINAPI EventSocketRunner( LPVOID parameter );
};
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -