FastMM documentation
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
Loading...
Searching...
No Matches
udp_socket.hpp File Reference

Non-blocking IPv4 UDP socket with RAII fd ownership: multicast membership, batch receive (recvmmsg) and send (sendmmsg), SO_TIMESTAMPING and busy-poll options. More...

#include "fastmm/net/io_result.hpp"
#include "fastmm/net/tcp_socket.hpp"
#include <sys/socket.h>
#include <cstddef>
#include <cstdint>
#include <optional>
#include <span>
#include <string_view>

Go to the source code of this file.

Classes

struct  fastmm::net::McastInterface
 Interface for multicast membership and IP_MULTICAST_IF: an IPv4 address or an interface index. More...
 
class  fastmm::net::UdpSocket
 

Namespaces

namespace  fastmm
 
namespace  fastmm::net
 

Functions

bool fastmm::net::parse_ipv4 (std::string_view text, std::uint32_t &out_be) noexcept
 Parses dotted-quad IPv4 into network byte order. Returns false on anything else.
 
constexpr bool fastmm::net::is_ipv4_multicast (std::uint32_t addr_be) noexcept
 
int fastmm::net::enable_hw_timestamps (std::string_view ifname) noexcept
 SIOCSHWTSTAMP on ifname: hardware timestamps for all received packets, TX off.
 

Detailed Description

Non-blocking IPv4 UDP socket with RAII fd ownership: multicast membership, batch receive (recvmmsg) and send (sendmmsg), SO_TIMESTAMPING and busy-poll options.

Linux only.

Configuration calls return 0 or -errno and also keep the errno in last_error(). I/O returns IoResult (single datagram) or a count / -errno (batches). Nothing here allocates or throws.