www.pudn.com > WZ_UpdateModule_DLL.rar > NetClient.h


#pragma once 
 
#include  
#include  
#include  
#include  
#include "PacketStruct.h" 
#include "UpdateInfo.h" 
 
#ifndef DLL_EXPORTS 
#define WZ_DECLAREDLL			_declspec (dllexport) 
#else 
#define WZ_DECLAREDLL			_declspec (dllimport) 
#endif 
 
using namespace std; 
 
unsigned int __stdcall RecvThread(void* pParam); 
unsigned int __stdcall SendThread(void* pParam); 
 
#define MAX_BUFFER_SIZE		1024		 
 
class WZ_DECLAREDLL CNetClient 
{ 
public: 
	CNetClient(void); 
	~CNetClient(void); 
 
	BOOL	Init(); 
	BOOL	Connect(); 
	BOOL	DisConnect(); 
	BOOL	Run(); 
	BOOL	GetPacket( char* pData, int* pSize ); 
	BOOL	SendData( char* pData, int nSize ); 
	void	Close(); 
 
//Buffer°ü·Ã ÇÔ¼ö 
protected: 
	BOOL AddRecvBuf( char* pBuf, int nSize ); 
	BOOL AddSendBuf( char* pBuf, int nSize ); 
 
	friend unsigned int __stdcall RecvThread(void* pParam); 
//	friend unsigned int __stdcall SendThread(void* pParam); 
 
private: 
	WSADATA 		m_wsaData; 
	SOCKET			m_hSocket; 
	HANDLE			m_hRecvThread; 
	HANDLE			m_hSendThread; 
	char			m_RecvBuf[MAX_BUFFER_SIZE]; 
	char			m_SendBuf[MAX_BUFFER_SIZE]; 
	BOOL			m_bRunThread; 
	SOCKADDR_IN		m_servAddr; 
	 
	CRITICAL_SECTION	m_cs; 
	vector		m_vecRecv; 
	CUpdateInfo			m_Info; 
 
	//Recv Packet.... 
public: 
	BOOL	m_bReqPacket; 
	DWORD	m_dwKey; 
};