RecvThreadSocket.h
上传用户:swkcbjrc
上传日期:2016-04-02
资源大小:45277k
文件大小:2k
源码类别:

游戏

开发平台:

Visual C++

  1. // RecvThreadSocket.h: interface for the CRecvThreadSocket class.
  2. //功能描述:该类是接收线程类
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_RECVTHREADSOCKET_H__9BEFC630_2EBA_408C_99EE_F4530B93CD77__INCLUDED_)
  5. #define AFX_RECVTHREADSOCKET_H__9BEFC630_2EBA_408C_99EE_F4530B93CD77__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "SocketModel.h"
  10. enum
  11. {
  12. ENUM_DEFAULT,
  13. ENUM_RECVSUCCESS,
  14. ENUM_DELETEUSER,
  15. ENUM_GOONRECV,
  16. ENUM_HEADERSUCCESS
  17. };
  18. #define MAXBUF 3000
  19. class CRecvThreadSocket : public CDPSocketModel  
  20. {
  21. public:
  22. CRecvThreadSocket();
  23. virtual ~CRecvThreadSocket();
  24. public:
  25. //##ModelId=3B394E060177
  26. void ReadContent(CString& strContent);
  27. //##ModelId=3B394E060181
  28. int GetReadBufCount(void);
  29. //##ModelId=3B394E060195
  30. BYTE ReadAllData(int& nRecvCount);
  31. //##ModelId=3B394E06019F
  32. inline void SetRecvSocket(SOCKET hRecv)
  33. {ASSERT(hRecv!=INVALID_SOCKET);m_hRecv=hRecv;};
  34. //##ModelId=3B394E0601B3
  35. inline SOCKET GetRecvSocket(void)
  36. {return(m_hRecv);};
  37. private:
  38. //##ModelId=3B394E0601BE
  39. void FreeBuffer(void);
  40. //##ModelId=3B394E0601D2
  41. BYTE GetPacketCount(int& nPacketCount);
  42. //##ModelId=3B394E0601E5
  43. int GetHeaderLength(void);
  44. private:
  45. //##ModelId=3B394E0601F9
  46. CString m_strReadBuf;//接受缓冲区
  47. //##ModelId=3B394E060218
  48. SOCKET m_hRecv;//接受端口
  49. //##ModelId=3B394E06023F
  50. CHAR m_chBuffer[MAXBUF];//数据缓冲区
  51. //##ModelId=3B394E06025D
  52. BYTE m_byFlag;//标志
  53. };
  54. #endif // !defined(AFX_RECVTHREADSOCKET_H__9BEFC630_2EBA_408C_99EE_F4530B93CD77__INCLUDED_)