osb/source/core/StarUdp.hpp

42 lines
909 B
C++
Raw Normal View History

2023-06-20 04:33:09 +00:00
#ifndef STAR_UDP_HPP
#define STAR_UDP_HPP
#include "StarSocket.hpp"
namespace Star {
STAR_CLASS(UdpSocket);
STAR_CLASS(UdpServer);
// A Good default assumption for a maximum size of a UDP datagram without
// fragmentation
unsigned const MaxUdpData = 1460;
class UdpSocket : public Socket {
public:
UdpSocket(NetworkMode networkMode);
size_t receive(HostAddressWithPort* address, char* data, size_t size);
size_t send(HostAddressWithPort const& address, char const* data, size_t size);
};
class UdpServer {
public:
UdpServer(HostAddressWithPort const& address);
~UdpServer();
void close();
bool isListening() const;
size_t receive(HostAddressWithPort* address, char* data, size_t size, unsigned timeout);
size_t send(HostAddressWithPort const& address, char const* data, size_t size);
private:
HostAddressWithPort const m_hostAddress;
UdpSocketPtr m_listenSocket;
};
}
#endif