D++ (DPP)
C++ Discord API Bot Library
dpp::address_t Class Reference

Represents an IPv4 address for use with socket functions such as bind(). More...

#include <socket.h>

Public Member Functions

 address_t (const std::string_view ip="0.0.0.0", uint16_t port=0)
 Create a new address_t. More...
 
sockaddr * get_socket_address ()
 Get sockaddr. More...
 
size_t size ()
 Returns size of sockaddr_in. More...
 
uint16_t get_port (socket fd)
 Get the port bound to a file descriptor. More...
 

Detailed Description

Represents an IPv4 address for use with socket functions such as bind().

Avoids type punning with C style casts from sockaddr_in to sockaddr pointers.

Constructor & Destructor Documentation

◆ address_t()

dpp::address_t::address_t ( const std::string_view  ip = "0.0.0.0",
uint16_t  port = 0 
)

Create a new address_t.

Parameters
ipIPv4 address
portPort number
Note
Leave both as defaults to create a default bind-to-any setting

Member Function Documentation

◆ get_port()

uint16_t dpp::address_t::get_port ( socket  fd)

Get the port bound to a file descriptor.

Parameters
fdFile descriptor
Returns
Port number, or 0 if no port bound

◆ get_socket_address()

sockaddr * dpp::address_t::get_socket_address ( )

Get sockaddr.

Returns
sockaddr pointer

◆ size()

size_t dpp::address_t::size ( )

Returns size of sockaddr_in.

Returns
sockaddr_in size
Note
It is important the size this returns is sizeof(sockaddr_in) not sizeof(sockaddr), this is NOT a bug but requirement of C socket functions.
D++ Library version 10.0.34D++ Library version 10.0.33D++ Library version 10.0.32D++ Library version 10.0.31D++ Library version 10.0.30D++ Library version 10.0.29D++ Library version 10.0.28D++ Library version 10.0.27D++ Library version 10.0.26D++ Library version 10.0.25D++ Library version 10.0.24D++ Library version 10.0.23D++ Library version 10.0.22D++ Library version 10.0.21D++ Library version 10.0.20D++ Library version 10.0.19D++ Library version 10.0.18D++ Library version 10.0.17D++ Library version 10.0.16D++ Library version 10.0.15D++ Library version 10.0.14D++ Library version 10.0.13D++ Library version 10.0.12D++ Library version 10.0.11D++ Library version 10.0.10D++ Library version 10.0.9D++ Library version 10.0.8D++ Library version 10.0.7D++ Library version 10.0.6D++ Library version 10.0.5D++ Library version 10.0.4D++ Library version 10.0.3D++ Library version 10.0.2D++ Library version 10.0.1D++ Library version 10.0.0D++ Library version 9.0.19D++ Library version 9.0.18D++ Library version 9.0.17D++ Library version 9.0.16D++ Library version 9.0.15D++ Library version 9.0.14D++ Library version 9.0.13D++ Library version 9.0.12D++ Library version 9.0.11D++ Library version 9.0.10D++ Library version 9.0.9D++ Library version 9.0.8D++ Library version 9.0.7D++ Library version 9.0.6D++ Library version 9.0.5D++ Library version 9.0.4D++ Library version 9.0.3D++ Library version 9.0.2D++ Library version 9.0.1D++ Library version 9.0.0D++ Library version 1.0.2D++ Library version 1.0.1D++ Library version 1.0.0