#pragma once #define SOCKETMESSAGE (WM_USER+0x1324) #include "akNetworkLinker.h" class AKNETWORK_DLLSPEC CakUDPClient { public: typedef void (*RecvMsgFunc) (char* pMsg, int nMsglen, void*); typedef void (*SystemMsgFunc) (char* pMsg, int nMsglen, void*); public: CakUDPClient(void); ~CakUDPClient(void); enum CONNECTRESULT { CONNECTRESULT_CONNECT_FAIL = 0, //¿¬°á½ÇÆÐ CONNECTRESULT_CONNECT_SUCCESS = 1, //¿¬°á¼º°ø CONNECTRESULT_ALREADY_CREATESOCKET = 2, //À̹̻ý¼ºµÈ ¼ÒÄÏ CONNECTRESULT_INVALID_SOCKET = 3, //¼ÒÄÏ»ý¼º ½ÇÆÐ CONNECTRESULT_WSASTARTUP_FAIL = 5 //StartUP½ÇÆÐ }; // Á¢¼Ó CONNECTRESULT Connect(char* serverip, int port); // Á¾·á void DisConnect(); // ¼ÒÄÏ ¸Þ¼¼Áö ¼ö½Å ÄÝ¹é ¼³Á¤ void SetRecvMessageCallback(RecvMsgFunc userFunc, void* data = NULL); // ½Ã½ºÅÛ ¸Þ¼¼Áö ¼ö½Å ÄÝ¹é ¼³Á¤ void SetSystemMessageCallback(RecvMsgFunc userFunc, void* data = NULL); // ¸Þ¼¼Áö Àü¼Û bool Send(char* sendchar, int length); // Á¢¼Ó »óÅ inline BOOL GetConnectState(){return m_isConnect;}; static unsigned int _stdcall RecvMSG(void *arg); // ¹Þ´Â ¾²·¹µå unsigned int m_nRecvBufferSize; private: int m_nThreadFlag; SOCKET m_ClinetSocket; //Ŭ¶óÀÌ¾ðÆ® ¼ÒÄÏ bool m_isConnect; //Á¢¼Ó »óÅ int m_port; //Á¢¼Ó Æ÷Æ® char m_servIP[15]; //Á¢¼Ó ¼­¹ö SOCKADDR_IN m_servAddr; HANDLE m_hThread; //¾²·¹µå ÇÚµé unsigned int m_dwThreadID; //¾²·¹µå ¾ÆÀ̵ð RecvMsgFunc m_recvmsgFunc; void* m_recvmsgData; SystemMsgFunc m_systemmsgFunc; void* m_systemmsgData; };