forked from metin-server/m2dev-client-src
init
This commit is contained in:
58
src/EterLib/NetDatagramSender.cpp
Normal file
58
src/EterLib/NetDatagramSender.cpp
Normal file
@@ -0,0 +1,58 @@
|
||||
#include "StdAfx.h"
|
||||
#include "NetDatagramSender.h"
|
||||
|
||||
BOOL CNetDatagramSender::SetSocket(const char * c_szIP, WORD wPortIndex)
|
||||
{
|
||||
return SetSocket(inet_addr(c_szIP), wPortIndex);
|
||||
}
|
||||
|
||||
BOOL CNetDatagramSender::SetSocket(DWORD dwAddress, WORD wPortIndex)
|
||||
{
|
||||
m_isSocket = TRUE;
|
||||
|
||||
m_dwAddress = dwAddress;
|
||||
m_wPortIndex = wPortIndex;
|
||||
|
||||
m_Socket = socket(AF_INET, SOCK_DGRAM, 0);
|
||||
|
||||
memset(&m_SockAddr, 0, sizeof(SOCKADDR_IN));
|
||||
m_SockAddr.sin_family = AF_INET;
|
||||
m_SockAddr.sin_addr.s_addr = dwAddress;
|
||||
m_SockAddr.sin_port = htons(wPortIndex);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CNetDatagramSender::Send(const void * pBuffer, int iSize)
|
||||
{
|
||||
assert(isSocket());
|
||||
|
||||
int iSendingLength = sendto(m_Socket, (const char *)pBuffer, iSize, 0, (PSOCKADDR)&m_SockAddr, sizeof(SOCKADDR_IN));
|
||||
if (iSendingLength < 0)
|
||||
{
|
||||
Tracef("Failed sending packet\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CNetDatagramSender::isSocket()
|
||||
{
|
||||
return m_isSocket;
|
||||
}
|
||||
|
||||
CNetDatagramSender::CNetDatagramSender()
|
||||
{
|
||||
m_isSocket = FALSE;
|
||||
|
||||
m_dwAddress = 0;
|
||||
m_wPortIndex = 1000;
|
||||
|
||||
m_Socket = 0;
|
||||
memset(&m_SockAddr, 0, sizeof(SOCKADDR_IN));
|
||||
}
|
||||
|
||||
CNetDatagramSender::~CNetDatagramSender()
|
||||
{
|
||||
}
|
||||
Reference in New Issue
Block a user