78 lines
1.5 KiB
C++
78 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include "ClientSession.h"
|
|
#include "RUDPSession.h"
|
|
|
|
using namespace std;
|
|
|
|
#pragma pack(push, 1)
|
|
|
|
struct TUdpData
|
|
{
|
|
USHORT Len;
|
|
sockaddr_in Addr;
|
|
char Data[CLIENTPACKETMAX];
|
|
};
|
|
|
|
#pragma pack(pop)
|
|
|
|
//##
|
|
/*
|
|
class CClientUdpSocket : public CClientSession
|
|
{
|
|
private:
|
|
bool m_bServer;
|
|
bool m_bRecvThreadClose;
|
|
|
|
HANDLE m_hThread;
|
|
DWORD m_dwThreadExitCode;
|
|
UINT m_nConnectUniqueID;
|
|
|
|
protected:
|
|
virtual void OnConnect();
|
|
virtual void OnDisconnect();
|
|
void OnRecv();
|
|
void OnSend();
|
|
void OnError(int nError);
|
|
|
|
void DoRecv();
|
|
void DestroyRecvThread();
|
|
|
|
//int ThreadUpdate();
|
|
static UINT __stdcall RecvThread(void *pParam);
|
|
|
|
public:
|
|
CClientUdpSocket(void);
|
|
CClientUdpSocket(int nSize);
|
|
~CClientUdpSocket(void);
|
|
|
|
bool Init(const USHORT nPort, bool bServer = false);
|
|
void Clear();
|
|
|
|
int Disconnect(int nConnectionID);
|
|
|
|
void Send(BYTE cMode, char *pData, int nSize, SOCKADDR_IN *pAddr );
|
|
void SendData(char *pData, int nSize, SOCKADDR_IN *pAddr);
|
|
|
|
virtual int DoUpdate();
|
|
virtual void MessageProcess(char *pData, int nSize);
|
|
void Flush();
|
|
|
|
void RecvMessageProcess(char *pData, int nSize, SOCKADDR_IN *pAddr);
|
|
|
|
void SendReplyMsg(BYTE cMode, SOCKADDR_IN *pAddr);
|
|
};
|
|
|
|
*/
|
|
|
|
class CClientRUdpSocket : public RUDPSession
|
|
{
|
|
public:
|
|
CClientRUdpSocket();
|
|
virtual ~CClientRUdpSocket();
|
|
|
|
virtual void OnConnect(int nHandle, SOCKADDR_IN Addr);
|
|
virtual void OnDisconnect(int nHandle, SOCKADDR_IN Addr);
|
|
virtual void OnReceive(int nHandle, SOCKADDR_IN Addr, const void* ptr, unsigned short nLen);
|
|
};
|
|
|