📄 selgate.h
字号:
#ifndef _SELGATE_DEFINE
#define _SELGATE_DEFINE
class CSessionInfo
{
public:
SOCKET sock;
OVERLAPPED Overlapped;
WSABUF DataBuf;
CHAR Buffer[DATA_BUFSIZE];
int bufLen;
public:
// ORZ:
CSessionInfo()
{
bufLen = 0;
}
int Recv()
{
DWORD nRecvBytes = 0, nFlags = 0;
DataBuf.len = DATA_BUFSIZE - bufLen;
DataBuf.buf = Buffer + bufLen;
memset( &Overlapped, 0, sizeof( Overlapped ) );
return WSARecv( sock, &DataBuf, 1, &nRecvBytes, &nFlags, &Overlapped, 0 );
}
bool HasCompletionPacket()
{
return memchr( Buffer, '!', bufLen ) ? true : false;
}
// recv 滚欺俊辑 肯己等 窍唱狼 菩哦阑 惶酒辰促.
char * ExtractPacket( char *pPacket )
{
int packetLen = (char *) memchr( Buffer, '!', bufLen ) - Buffer + 1;
memcpy( pPacket, Buffer, packetLen );
memmove( Buffer, Buffer + packetLen, DATA_BUFSIZE - packetLen );
bufLen -= packetLen;
return pPacket + packetLen;
}
};
void InsertLogMsg(UINT nID);
void InsertLogMsg(LPTSTR lpszMsg);
#endif //_SELGATE_DEFINE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -