You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

45 lines
917 B

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================
#ifndef UDP_SOCKET_H
#define UDP_SOCKET_H
#ifdef _WIN32
#pragma once
#endif
#include "tier1/netadr.h"
#include "tier0/basetypes.h"
class CUtlBuffer;
// Creates a non-blocking UPD socket
class CUDPSocket
{
public:
CUDPSocket();
~CUDPSocket();
bool Init( unsigned short bindToPort );
void Shutdown();
bool RecvFrom( netadr_t& packet_from, CUtlBuffer& data );
bool SendTo( const netadr_t &recipient, const CUtlBuffer& data );
bool SendTo( const netadr_t &recipient, const byte *data, size_t datalength );
bool IsValid() const { return m_Socket != 0; }
protected:
bool CreateSocket (void);
class CImpl;
CImpl *m_pImpl;
netadr_t m_socketIP;
unsigned int m_Socket;
unsigned short m_Port;
};
#endif // UDP_SOCKET_H