ts.h
上传用户:hy11688
上传日期:2007-01-08
资源大小:81k
文件大小:2k
源码类别:

棋牌游戏

开发平台:

Visual C++

  1. #ifndef __CSOCKET_H
  2. #define __CSOCKET_H
  3. //extern "C" AFX_EXT_API void WINAPI InitCTCPSocket(void);
  4. #define ESTSOCKET    0X2022
  5. //  connect flags for connection methed
  6. #define BLOCKING_NOTIFY      0X0001
  7. #define THREAD_NOTIFY        0X0010
  8. #define WSA_NOTIFY           0X0100
  9. #define LISTEN_SIDE   0X1000
  10. #define CONNECT_SIDE  0X0000
  11. // define message for WSA
  12. #define ID_THREADACCEPT    WM_USER + 0X0F00  //  when ThreadListen
  13. #define WSA_ACCEPT         ID_THREADACCEPT
  14. #define WSA_READ           WM_USER + 0X0F01
  15. class AFX_EXT_CLASS CTCPSocket
  16. {
  17. public:
  18.    CTCPSocket(void);
  19.    ~CTCPSocket(void);
  20.    
  21.    void InitData(HWND hWndOwner,WORD wPort,
  22.                      BOOL fListen,WORD wFlag,
  23.                           BYTE bMax=5,UINT uAccept=WSA_ACCEPT);
  24.    BOOL Establish(LPCSTR lpszOtherHost=NULL);
  25.    BOOL WSAAccept(void);
  26.    BOOL ThreadAccept(void){m_hListenThread=NULL;return TRUE;};
  27.    BOOL Established(HWND hWndOwner,UINT uRead=WSA_READ);
  28.    void CancelListen(void);   // when WSA or Thread
  29.    void Close(void);
  30.    void CloseListenSocket(void);
  31.    
  32.    BOOL IsListenSide(void)
  33.       {return m_wFlag&LISTEN_SIDE;};
  34.    SOCKET GetCommSocket(void)
  35.       {return (IsListenSide())?m_sockUse[1]:m_sockUse[0];};
  36.    int Read(LPSTR pRead,DWORD dwRead);
  37.    int Write(LPCSTR pWrite,DWORD dwWrite);
  38. protected:
  39.    BOOL ListenSide(void);
  40.    BOOL ConnectSide(LPCSTR lpszServer);
  41.    BOOL WSAListen(void);
  42.    BOOL BSDListen(void);
  43.    BOOL ThreadListen(void);
  44. protected:
  45.    HWND m_hWnd;
  46.    HANDLE m_hListenThread;
  47.    SOCKET m_sockUse[2];
  48.    WORD m_wPort;
  49.    WORD m_wFlag;
  50.    BYTE m_bMaxListen;
  51.    UINT m_uAccept;
  52.    UINT m_uRead;
  53. };
  54. BOOL EstComm(CTCPSocket* ptsEst,
  55.  SOCKET sockEst=ESTSOCKET,
  56.  CWnd* pP=NULL,
  57.  LPCSTR lpszOtherName=NULL,
  58.  BOOL fListen=FALSE);
  59. #endif