|
|
#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;
|
};
|