www.pudn.com > IOCPTest.rar > SocketClass.h


// SocketClass.h: interface for the CSocketClass class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_SOCKETCLASS_H__1246136D_3FCD_4E8A_A4B8_BEAEADE7F3A6__INCLUDED_) 
#define AFX_SOCKETCLASS_H__1246136D_3FCD_4E8A_A4B8_BEAEADE7F3A6__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
#include  
#pragma comment(lib,"ws2_32.lib") 
 
#define WM_STATUS_MSG	WM_APP + 0x1001 
#define WM_REC_MSG		WM_APP + 0x1002 
 
#include "Mapping.h" 
#include "Buffer.h" 
class CSocketClass : public CNetworkMessageMap  
{ 
public: 
	CSocketClass(); 
	virtual ~CSocketClass(); 
 
	bool Init(const CString& strIPAddr, int nPort, HWND hWnd); 
	void SendData(CString strData); 
    void  Stop(); 
	BOOL Connect(); 
 
	BOOL				m_bInProgress; 
	BOOL				m_bConnect; 
	WSAEVENT			m_hEvent; 
	DWORD				m_dwThread; 
    HANDLE              m_hKillEvent; 
 
	HANDLE				m_hThread; 
	UINT				m_dwThreadId; 
 
	CRITICAL_SECTION	m_criticalSection; 
	SOCKET				m_hSocket; 
	UINT				m_nPort; 
	CString				m_strIPAddr; 
	BOOL				m_bReadHeader; 
	int					m_nBlockSize; 
	int					m_nTotalRead; 
	CString				m_strBlock; 
 
	HWND				m_hWnd; 
	UINT				m_nCnt; 
	 
 
	static unsigned __stdcall SocketThreadProc(LPVOID lParam); 
 
////////////////////////////////////////////////// 
// Message Map Begin 
////////////////////////////////////////////////// 
	BEGIN_NETWORK_MSG_MAP(CSocketClass) 
		NETWORK_MESSAGE_HANDLER(FD_READ,  OnRead) 
		NETWORK_MESSAGE_HANDLER(FD_CLOSE, OnClose) 
		NETWORK_MESSAGE_HANDLER(FD_CONNECT, OnConnect) 
		NETWORK_MESSAGE_HANDLER(FD_CLOSE, OnClose) 
	END_NETWORK_MSG_MAP() 
 
	net_msg virtual bool OnRead(); 
	net_msg virtual bool OnWrite(); 
	net_msg virtual bool OnConnect(); 
	net_msg virtual bool OnClose(); 
 
	void CSocketClass::DoAsyncSendBuff(); 
 
////////////////////////////////////////////////// 
 
	CBuffer	m_sendBuff; 
	CBuffer	m_recvBuff; 
 
	INT m_nSendDataLen; 
	INT	m_nBytesSent; 
 
 
}; 
 
#endif // !defined(AFX_SOCKETCLASS_H__1246136D_3FCD_4E8A_A4B8_BEAEADE7F3A6__INCLUDED_)