GameGate.h
上传用户:szopptop
上传日期:2013-04-23
资源大小:1047k
文件大小:2k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. #ifndef _GAMEGATE_DEFINE
  2. #define _GAMEGATE_DEFINE
  3. class CSessionInfo
  4. {
  5. public:
  6. SOCKET sock;
  7. // SOCKADDR_IN addr;
  8. int nServerUserIndex;
  9. int nGateIndex;
  10. BOOL fLoginCode;
  11. int nPreviousCheckCode;
  12. int nCrackWarningLevel;
  13. CHAR SendBuffer[DATA_BUFSIZE];
  14. int nSendBufferLen;
  15.     //SocData: string;   //罐篮 滚欺
  16.     //SendData: string;  //焊尘巴捞 巢澜
  17. //    SendLock: Boolean;
  18. //    SendLatestTime: longword;
  19. //    CheckSendLength: integer;
  20. //    SendAvailable: Boolean;
  21. //    SendCheck: Boolean;
  22. //    TimeOutTime: longword;
  23. //    ReceiveLength: integer;
  24. //    ReceiveTime: longword;
  25. //    shandle:  integer;
  26. //    RemoteAddr: string;
  27. // For Overlapped I/O
  28. OVERLAPPED Overlapped;
  29. WSABUF DataBuf;
  30. CHAR Buffer[DATA_BUFSIZE];
  31. // CHAR RemainBuff[DATA_BUFSIZE];
  32. INT bufLen;
  33. INT nOvFlag;
  34. CSessionInfo()
  35. {
  36. bufLen = 0;
  37. }
  38. int  Recv()
  39. {
  40. nOvFlag = OVERLAPPED_RECV;
  41. DWORD nRecvBytes = 0, nFlags = 0;
  42. DataBuf.len = DATA_BUFSIZE - bufLen;
  43. DataBuf.buf = Buffer + bufLen;
  44. memset( &Overlapped, 0, sizeof( Overlapped ) );
  45. return WSARecv( sock, &DataBuf, 1, &nRecvBytes, &nFlags, &Overlapped, 0 );
  46. }
  47. bool HasCompletionPacket()
  48. {
  49. return memchr( Buffer, '!', bufLen ) ? true : false;
  50. }
  51. // recv 滚欺俊辑 肯己等 窍唱狼 菩哦阑 惶酒辰促.
  52. char * ExtractPacket( char *pPacket )
  53. {
  54. int packetLen = (char *) memchr( Buffer, '!', bufLen ) - Buffer + 1;
  55. memcpy( pPacket, Buffer, packetLen );
  56. memmove( Buffer, Buffer + packetLen, DATA_BUFSIZE - packetLen );
  57. bufLen -= packetLen;
  58. return pPacket + packetLen;
  59. }
  60. };
  61. typedef struct tag_TSENDBUFF
  62. {
  63. SOCKET sock;
  64. int nGateIndex;
  65. char szData[1024];
  66. }_TSENDBUFF, *_LPTSENDBUFF;
  67. #define LOGPARAM_STR 1
  68. #define LOGPARAM_INT 2
  69. void InsertLogMsg(UINT nID);
  70. void InsertLogMsg(LPTSTR lpszMsg);
  71. void InsertLogPacket(char *pszPacket);
  72. void InsertLogMsgParam(UINT nID, void *pParam, BYTE btFlags);
  73. void SendSocketMsgS (_LPTMSGHEADER lpMsg, int nLen1, char *pszData1, int nLen2, char *pszData2);
  74. void SendSocketMsgS (int nIdent, WORD wIndex, int nSocket, WORD wSrvIndex, int nLen, char *pszData);
  75. extern BOOL g_fTerminated;
  76. #endif //_GAMEGATE_DEFINE