⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rawsocketserverworker.h

📁 C++编程实践与技巧一书各章节的源码
💻 H
字号:
/////////////////////////////////////////////////////////////////////
// Class Creator Version 2.0.000 Copyrigth (C) Poul A. Costinsky 1994
///////////////////////////////////////////////////////////////////
// Header File RawSocketServerWorker.h
// class CWizRawSocketListener
//
// 16/07/1996 17:53                             Author: Poul
///////////////////////////////////////////////////////////////////

#ifndef __CWizRawSocketServerWorker_H
#define __CWizRawSocketServerWorker_H

#include "ThreadDispatcher.h"
#include "RawSocket.h"

/////////////////////////////////////////////////////////////////////////////
// class CWizRawSocketServerWorker
class CWizRawSocketListener : public CWizMultiThreadedWorker
{
public:
	// Exceptions hierarchy
	struct Xeption {}; // common
	struct XCannotCreate : public Xeption {};  // createsocket fail
	struct XCannotSetHook : public Xeption {}; // WSASetBlockingHook fail
	struct XCannotSetHookEvent : public Xeption {}; // SetEven fail
	struct XCannotListen : public Xeption {};		// Listen fail
// Constructors:
	CWizRawSocketListener (int nPort); // Constructor do almost nothing
// Destructor:
	virtual ~CWizRawSocketListener ();
public:
// Operations:
// Virtual operations:
	// Interface for CWizThreadDispatcher
	virtual void Prepare();
	virtual BOOL WaitForData (HANDLE hShutDownEvent);
	virtual BOOL TreatData   (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   (CWizReadWriteSocket& socket) = 0;
protected:

// Implementation:
// Virtual implementation:
protected:
// Data Members:
	CWizSyncSocket*				m_pListenSocket;
	int							m_nPort;
	SOCKET						m_hAcceptedSocket;
};

/////////////////////////////////////////////////////////////////////////////
#endif // __CWizRawSocketServerWorker_H


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -