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

模拟服务器

开发平台:

Visual C++

  1. #ifndef _SELGATE_DEFINE
  2. #define _SELGATE_DEFINE
  3. class CSessionInfo
  4. {
  5. public:
  6. SOCKET sock;
  7. OVERLAPPED Overlapped;
  8. WSABUF DataBuf;
  9. CHAR Buffer[DATA_BUFSIZE];
  10. int bufLen;
  11. public:
  12. // ORZ:
  13. CSessionInfo()
  14. {
  15. bufLen = 0;
  16. }
  17. int  Recv()
  18. {
  19. DWORD nRecvBytes = 0, nFlags = 0;
  20. DataBuf.len = DATA_BUFSIZE - bufLen;
  21. DataBuf.buf = Buffer + bufLen;
  22. memset( &Overlapped, 0, sizeof( Overlapped ) );
  23. return WSARecv( sock, &DataBuf, 1, &nRecvBytes, &nFlags, &Overlapped, 0 );
  24. }
  25. bool HasCompletionPacket()
  26. {
  27. return memchr( Buffer, '!', bufLen ) ? true : false;
  28. }
  29. // recv 滚欺俊辑 肯己等 窍唱狼 菩哦阑 惶酒辰促.
  30. char * ExtractPacket( char *pPacket )
  31. {
  32. int packetLen = (char *) memchr( Buffer, '!', bufLen ) - Buffer + 1;
  33. memcpy( pPacket, Buffer, packetLen );
  34. memmove( Buffer, Buffer + packetLen, DATA_BUFSIZE - packetLen );
  35. bufLen -= packetLen;
  36. return pPacket + packetLen;
  37. }
  38. };
  39. void InsertLogMsg(UINT nID);
  40. void InsertLogMsg(LPTSTR lpszMsg);
  41. #endif //_SELGATE_DEFINE