#pragma once //#include //#include //#include //#include //#include // // // //#define MAX_SOCK_SENDBUF ( 10240) //#define MAX_SOCK_RECVBUF ( 120000) //#define MAX_PACKET_SIZE ( 102400 ) // // //#ifdef _DEBUG ////#define CLIENT_SOCKET_LOG //#endif // //#ifdef CLIENT_SOCKET_LOG //#define SAFE_LOGPRINT0(sz) _LogPrint(sz) //#define SAFE_LOGPRINT1(sz,p1) _LogPrint(sz,p1) //#define SAFE_LOGPRINT2(sz,p1,p2) _LogPrint(sz,p1,p2) //#define SAFE_LOGPRINT3(sz,p1,p2,p3) _LogPrint(sz,p1,p2,p3) //#define SAFE_LOGPRINT4(sz,p1,p2,p3,p4) _LogPrint(sz,p1,p2,p3,p4) //#else //#define SAFE_LOGPRINT0(sz) //#define SAFE_LOGPRINT1(sz,p1) //#define SAFE_LOGPRINT2(sz,p1,p2) //#define SAFE_LOGPRINT3(sz,p1,p2,p3) //#define SAFE_LOGPRINT4(sz,p1,p2,p3,p4) //#endif // // //using namespace std; //typedef list STL_BTLIST; //typedef void (*CSFUNC_NOTIFY)(DWORD,void* param); // //enum EN_CLIENT_SOCKET_MESSAGE //{ // //¿¡·¯ °ü·Ã // CSM_NOERROR, //¿¡·¯ ¾øÀ½ // CSM_ERROR_INIT_WINSOCK_DLL, //WINSOCK.dll ÃʱâÈ­ ¿¡·¯ // CSM_ERROR_LOWVERSION_WINSOCK_DLL, //³·Àº ¹öÀü WINSOCK.dll // CSM_ERROR_CREATE_SOKCET, //¼ÒÄÏ»ý¼º ½ÇÆÐ // CSM_ERROR_CLOSE_SOCKET, //¼ÒÄÏ ´Ý±â ½ÇÆÐ // CSM_ERROR_CONNECT, //connet() ÇÔ¼ö È£Ãâ ½ÇÆÐ // CSM_ERROR_SEND, //send()È£Ãâ ½ÇÆÐ // CSM_ERROR_SEND_BUFF_OVERFLOW, //send ¹öÆÛÃʰú // CSM_ERROR_RECEIVE, //receive()È£Ãâ ½ÇÆÐ // CSM_ERROR_RECEIVE_BUFF_OVERFLOW, //receive ¹öÆÛ Ãʰú // CSM_ERROR_RECEIVE_INVALID_SIZE, //»çÀÌÁî Å©±â°¡ 0 º¸´Ù ÀÛ´Ù // CSM_ERROR_INVALID_ADDRESS, //À߸øµÈ ÁÖ¼Ò Ä¿³ØÆ® ½Ãµµ. // CSM_ERROR_TRY_LOCAL_ADDRESS, //·ÎÄ® ÁÖ¼Ò·Î Á¢¼Ó ½Ãµµ // CSM_ERROR_WSA_EVENT_SELECT, //WSAAsyncSelect ÇÔ¼ö È£Ãâ ½ÇÆÐ. // CSM_ERROR_LOG_PRINT_NOT_DEBUGMODE, //¸±¸®Áî¸ðµå ·Î±×°¡ Ãâ·ÂµÊ. // // //±âŸ // CSM_PRINT_LOG, //·Î±× Ãâ·ÂÀ» ¾Ë¸°´Ù. //}; // // //class CClientSocket //{ //private: // DWORD m_dwTimer; // DWORD m_dwSendByte; // DWORD m_dwRecvByte; // DWORD m_dwSendBytePerSec; // DWORD m_dwRecvBytePerSec; // //public : // void UpdateTimer( void ); // // // DWORD GetSendBytePerSec( void ) { return m_dwSendBytePerSec; } // DWORD GetRecvBytePerSec( void ) { return m_dwRecvBytePerSec; } // // // // //public: // CClientSocket(); // ~CClientSocket(); // virtual BOOL Connect(char *ip_addr, unsigned short port,HWND hWnd,UINT message,long lSelectEvent=FD_READ|FD_WRITE|FD_CLOSE|FD_CONNECT); // virtual BOOL Create(CSFUNC_NOTIFY fnRecieve=NULL); // virtual BOOL Disconnect(); // virtual BOOL Send( char *buf, int len); // virtual BOOL Receive(); // virtual SOCKET GetSocket(){return m_socket;} // virtual BYTE* GetFirstPacketPtr(); // virtual VOID RemoveFirstPacket( WORD wSize ); // virtual BOOL FDWriteSend(); // virtual BOOL IsConneted(){return m_socket!=INVALID_SOCKET;} // virtual DWORD GetLastError(){return m_dwLastError;} // // int GetBackDataCount() { return m_pRecvBuffer->GetLength(); } //protected: // //¸â¹ö º¯¼ö // SOCKET m_socket; // // CircuitQueue *m_pRecvBuffer; // // BYTE m_SendBuf[MAX_SOCK_SENDBUF]; // int m_nCurrSend; // // DWORD m_dwLastError; // CSFUNC_NOTIFY m_fn_SendParent; // // static BOOL s_bStartUpDone; // // //¸â¹ö ÇÔ¼ö (protected) // BOOL _StartUp(); // BOOL _GracefulClose(); // BOOL _CreateSocket(); // BOOL _CloseSocket(); // void _SetLastError(EN_CLIENT_SOCKET_MESSAGE ecse); // void _SafeNotify(DWORD dw,void* param){if(m_fn_SendParent)m_fn_SendParent(dw,param);} // // // // ÆÐŶ·® °è»ê //protected: // DWORD m_dwInitialTick; // long m_lTotalSendSize; //public: // //·Î±× °ü·Ã // //#ifdef CLIENT_SOCKET_LOG // // //protected: // FILE* m_fpLog; // void _InitLog(); // void _LogPrint( char *szlog, ...); // void _LogEnd(){if(m_fpLog)fclose(m_fpLog);} // //#else //protected: // void _InitLog(){} // // CLIENT_SOCKET_LOG Á¤ÀÇ ¾ÈµÇ¾î ÀÖ´Â °æ¿ì Á÷Á¢ È£Ãâ ±ÝÁö // void _LogPrint( char *szlog, ...){ _SafeNotify(CSM_ERROR_LOG_PRINT_NOT_DEBUGMODE,NULL); throw CSM_ERROR_LOG_PRINT_NOT_DEBUGMODE;} // void _LogEnd(){} //#endif // //};