Files
2026-11-07 13:30:45 +07:00

91 lines
1.5 KiB
C++

#include "StdAfx.h"
#include "ioTestBot.h"
#include "network/SP2Packet.h"
#include "ioClientSocketUDP.h"
extern void PacketProcess(ioTestBot* unit, SP2Packet& packet);
ioClientSocketUDP::ioClientSocketUDP(void)
{
Init();
}
ioClientSocketUDP::~ioClientSocketUDP(void)
{
Destroy();
}
void ioClientSocketUDP::Init()
{
}
void ioClientSocketUDP::Destroy()
{
}
void ioClientSocketUDP::OnConnect()
{
}
void ioClientSocketUDP::OnDisconnect()
{
}
void ioClientSocketUDP::OnSend()
{
}
void ioClientSocketUDP::OnReceive(char* buffer, int& length)
{
CPacket kPacket( reinterpret_cast<uint8*>(buffer), length );
if( kPacket.IsValidPacket() && (length >= kPacket.GetBufferSize()) )
{
if( CheckNS( kPacket ) )
{
SP2Packet &packet = (SP2Packet&)kPacket;
PacketProcess( (ioTestBot*)this, packet );
}
}
else
{
}
}
void ioClientSocketUDP::BeforeSend(CPacket &rkPacket)
{
if( m_NS )
m_NS->PrepareMsg( rkPacket );
}
void ioClientSocketUDP::AfterSend(CPacket &rkPacket)
{
if( m_NS )
m_NS->CompletionMsg( rkPacket );
}
BOOL ioClientSocketUDP::SendPacket(CPacket &rkPacket)
{
if(IsConnected())
{
BeforeSend( rkPacket );
BOOL result = Send( reinterpret_cast<const char*>(rkPacket.GetBuffer()), rkPacket.GetBufferSize() );
AfterSend( rkPacket );
return result;
}
return FALSE;
}
BOOL ioClientSocketUDP::CheckNS( CPacket &rkPacket )
{
if( m_NS && m_NS->IsCheckSum( rkPacket ) && m_NS->CheckState( rkPacket ) )
{
return TRUE;
}
return FALSE;
}