source-engine-2018-hl2_src/networksystem/udp_socket.h

46 lines
917 B
C
Raw Permalink Normal View History

2020-04-23 00:56:21 +08:00
//========= 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