Socket.h
上传用户:guangzhiyw
上传日期:2007-01-09
资源大小:495k
文件大小:3k
源码类别:

ICQ/即时通讯

开发平台:

Visual C++

  1. #if !defined(AFX_SOCKET_H__CC9C0986_49F0_11D5_B110_97ACDB42FA00__INCLUDED_)
  2. #define AFX_SOCKET_H__CC9C0986_49F0_11D5_B110_97ACDB42FA00__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // Socket.h : header file
  7. //
  8. #include "common.h"
  9. class CData;
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CRecvSocket command target
  12. class CRecvSocket : public CAsyncSocket
  13. {
  14. // Attributes
  15. private:
  16. char m_szResponseMsg[MaxResponseMsgLength];
  17. int m_szrLength;
  18. // Operations
  19. public:
  20. CRecvSocket();
  21. virtual ~CRecvSocket();
  22. // Overrides
  23. public:
  24. BOOL Create(int nPort);
  25. // ClassWizard generated virtual function overrides
  26. //{{AFX_VIRTUAL(CRecvSocket)
  27. public:
  28. virtual void OnReceive(int nErrorCode);
  29. virtual void OnClose(int nErrorCode);
  30. //}}AFX_VIRTUAL
  31. // Generated message map functions
  32. //{{AFX_MSG(CRecvSocket)
  33. // NOTE - the ClassWizard will add and remove member functions here.
  34. //}}AFX_MSG
  35. // Implementation
  36. protected:
  37. };
  38. /////////////////////////////////////////////////////////////////////////////
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CSendSocket command target
  41. class CSendSocket : public CAsyncSocket
  42. {
  43. // Attributes
  44. private:
  45. BYTE* pBuf;
  46. char m_szResponseMsg[20];
  47. int m_szrLength;
  48. // Operations
  49. public:
  50. CSendSocket(BYTE*buf);
  51. virtual ~CSendSocket();
  52. BOOL Create();
  53. // Overrides
  54. public:
  55. // ClassWizard generated virtual function overrides
  56. //{{AFX_VIRTUAL(CSendSocket)
  57. public:
  58. virtual void OnReceive(int nErrorCode);
  59. //}}AFX_VIRTUAL
  60. // Generated message map functions
  61. //{{AFX_MSG(CSendSocket)
  62. // NOTE - the ClassWizard will add and remove member functions here.
  63. //}}AFX_MSG
  64. // Implementation
  65. protected:
  66. };
  67. /////////////////////////////////////////////////////////////////////////////
  68. class CServerSocket  
  69. {
  70. public:
  71. void CloseSendSocket();
  72. void CloseListenSocket();
  73. BOOL Create(int SendSockNum,CArray<DWORD,DWORD>&aPort,int TimeOut=TimeWaitForRes);
  74. BOOL SendData(CData* pData,int FailReDoTimes=3);
  75. CServerSocket();
  76. virtual ~CServerSocket();
  77. private:
  78. CRecvSocket* m_apRecvSocket[ListenSocketNum];
  79. CSendSocket* m_apSendSocket[SendSocketNum];
  80. int m_nRecvSocket;
  81. int m_nSendSocket;
  82. BOOL m_abBusy[SendSocketNum];
  83. BYTE m_arBuf[CheckBufLength];
  84. DWORD m_nTotalSend;
  85. DWORD m_nTimeOut;
  86. };
  87. //{{AFX_INSERT_LOCATION}}
  88. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  89. #endif // !defined(AFX_SOCKET_H__CC9C0986_49F0_11D5_B110_97ACDB42FA00__INCLUDED_)