rawsocketserverworker.h

来自「pocket pc 2003系统下的数据通讯和文件传输」· C头文件 代码 · 共 62 行

H
62
字号
#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 + =
减小字号Ctrl + -
显示快捷键?