?? rawsocketserverworker.h
字號:
#pragma once
#ifndef __CWizRawSocketServerWorker_H
#define __CWizRawSocketServerWorker_H
#include "ThreadDispatcher.h"
#include "RawSocket.h"
/////////////////////////////////////////////////////////////////////////////
// class CWizRawSocketServerWorker
class CWizRawSocketListener : public CWizMultiThreadedWorker
{
public:
// Exceptions hierarchy
struct Xeption {
Xeption(CString error)
{
MessageBox(NULL, error, "Error", MB_OK | MB_ICONINFORMATION );
exit(0);
}
};
struct XCannotCreate { XCannotCreate() { Xeption("Create socket error!"); } };
struct XCannotSetHook { XCannotSetHook() { Xeption("Can not set hook!"); } };
struct XCannotSetHookEvent { XCannotSetHookEvent() { Xeption("Can not set hook event!"); } };
struct XCannotListen { XCannotListen() { Xeption("Can not listen socket!"); } };
CWizRawSocketListener (int nPort); // Constructor do almost nothing
virtual ~CWizRawSocketListener ();
public:
// Operations:
void ShutDown(int);
void Close(int);
// Virtual operations:
// Interface for CWizThreadDispatcher
virtual void Prepare();
virtual BOOL WaitForData (int&,HANDLE hShutDownEvent);
virtual BOOL TreatData (int, HANDLE hShutDownEvent, HANDLE hDataTakenEvent);
virtual void CleanUp();
// Pure virtual function - do something
// with the socket connected to the client.
// Should return TRUE if needs to continue I/O.
virtual BOOL ReadWrite (int,CWizReadWriteSocket& socket) = 0;
protected:
// Implementation:
// Virtual implementation:
protected:
// Data Members:
CWizSyncSocket* m_pListenSocket;
int m_nPort;
public:
SOCKET m_hAcceptedSocket;
public:
CWizReadWriteSocket * clientSide[MAXCLIENT];
};
/////////////////////////////////////////////////////////////////////////////
#endif // __CWizRawSocketServerWorker_H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -