1 // CasServer.h: CCasServer
\83N
\83\89\83X
\82Ì
\83C
\83\93\83^
\81[
\83t
\83F
\83C
\83X
\r
3 //////////////////////////////////////////////////////////////////////
\r
9 #include "CasClient.h"
\r
10 #include "TsUtilClass.h"
\r
11 #include "SmartSock.h"
\r
17 class CCasServer : protected CCasClient::ICasClientHandler
\r
20 class ICasServerHandler
\r
23 virtual void OnCasServerEvent(CCasServer *pCasServer, const WORD wEventID) = 0;
\r
28 CSEI_CONNECTED, //
\83N
\83\89\83C
\83A
\83\93\83g
\90Ú
\91±
\r
29 CSEI_DISCONNECTED, //
\83N
\83\89\83C
\83A
\83\93\83g
\90Ø
\92f
\r
33 CCasServer(ICasServerHandler *pEventHandler);
\r
36 const BOOL OpenServer(const WORD wServerPort);
\r
37 void CloseServer(void);
\r
39 const DWORD GetClientNum(void) const;
\r
42 virtual void OnCasClientEvent(CCasClient *pClient, const DWORD dwEventID, PVOID pParam);
\r
44 void ServerThread(void);
\r
45 static void* ServerThreadRaw(LPVOID pParam);
\r
47 ICasServerHandler *m_pEventHandler;
\r
49 CSmartSock m_pSocket;
\r
50 pthread_t m_hServerThread;
52 typedef map<CCasClient *, CCasClient *> ClientList;
\r
53 ClientList m_ClientList;
\r
55 CCriticalLock m_Lock;
\r