#pragma once #include #include #include #include #include "define.h" #include "PacketStruct.h" using namespace std; unsigned int __stdcall RecvThread(void* pParam); unsigned int __stdcall SendThread(void* pParam); #define MAX_BUFFER_SIZE 1024 class DLL_DECLARE CNetClient { public: CNetClient(void); ~CNetClient(void); BOOL Init( DWORD& dwErrorCode ); BOOL Connect( TCHAR* pszIP, WORD wPort, DWORD& dwErrorCode ); BOOL DisConnect(); BOOL Run(); BOOL GetPacket( char* pData, int* pSize ); int SendData( char* pData, int nSize, int& nErrorCode ); 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; //Recv Packet.... public: BOOL m_bReqPacket; DWORD m_dwKey; };