Mbed OS Reference
Loading...
Searching...
No Matches
SocketAddress Class Reference

Representation of an IP (v4 or v6) address and port pair. More...

#include <SocketAddress.h>

Public Member Functions

constexpr SocketAddress ()=default
 Create an empty SocketAddress.
 
 SocketAddress (const nsapi_addr_t &addr, uint16_t port=0)
 Create a SocketAddress from a raw IP address and port.
 
 SocketAddress (const char *addr, uint16_t port=0)
 Create a SocketAddress from an IP address and port.
 
 SocketAddress (const void *bytes, nsapi_version_t version, uint16_t port=0)
 Create a SocketAddress from raw IP bytes, IP version, and port.
 
 SocketAddress (const SocketAddress &addr)
 Create a SocketAddress from another SocketAddress.
 
 SocketAddress (SocketAddress &&addr)=default
 Create a SocketAddress by moving another SocketAddress.
 
 ~SocketAddress ()=default
 Destructor.
 
bool set_ip_address (const char *addr)
 Set the IP address.
 
void set_ip_bytes (const void *bytes, nsapi_version_t version)
 Set the raw IP bytes and IP version.
 
void set_addr (const nsapi_addr_t &addr)
 Set the raw IP address.
 
void set_port (uint16_t port)
 Set the port.
 
const char * get_ip_address () const
 Get the human-readable IP address.
 
const void * get_ip_bytes () const
 Get the raw IP bytes.
 
nsapi_version_t get_ip_version () const
 Get the IP address version.
 
nsapi_addr_t get_addr () const
 Get the raw IP address.
 
uint16_t get_port () const
 Get the port.
 
 operator bool () const
 Test if address is zero or empty.
 
bool is_empty () const
 
SocketAddressoperator= (const SocketAddress &addr)
 Copy address from another SocketAddress.
 

Detailed Description

Representation of an IP (v4 or v6) address and port pair.

Each SocketAddress contains the IP address bytes and the port number. Also, when the IP address is first used as a string (e.g. for get_ip_address() ), a character string is allocated on the heap via a unique_ptr inside the SocketAddress. This character string as long as the SocketAddress does, but not longer.

Definition at line 40 of file SocketAddress.h.

Constructor & Destructor Documentation

◆ SocketAddress() [1/6]

constexpr SocketAddress ( )
constexprdefault

Create an empty SocketAddress.

◆ SocketAddress() [2/6]

SocketAddress ( const nsapi_addr_t addr,
uint16_t  port = 0 
)

Create a SocketAddress from a raw IP address and port.

Note
To construct from a host name, use NetworkInterface::gethostbyname
Parameters
addrRaw IP address
portOptional 16-bit port, defaults to 0

◆ SocketAddress() [3/6]

SocketAddress ( const char *  addr,
uint16_t  port = 0 
)

Create a SocketAddress from an IP address and port.

If the string is not a parseable IP address, an empty SocketAddress is returned (see is_empty() below).

Parameters
addrNull-terminated string representation of the IP address
portOptional 16-bit port, defaults to 0

◆ SocketAddress() [4/6]

SocketAddress ( const void *  bytes,
nsapi_version_t  version,
uint16_t  port = 0 
)

Create a SocketAddress from raw IP bytes, IP version, and port.

Parameters
bytesRaw IP address in big-endian order
versionIP address version, NSAPI_IPv4 or NSAPI_IPv6
portOptional 16-bit port, defaults to 0

◆ SocketAddress() [5/6]

SocketAddress ( const SocketAddress addr)

Create a SocketAddress from another SocketAddress.

Parameters
addrSocketAddress to copy

◆ SocketAddress() [6/6]

SocketAddress ( SocketAddress &&  addr)
default

Create a SocketAddress by moving another SocketAddress.

This transfers ownership of the string data, if allocated.

Parameters
addrSocketAddress to move from

◆ ~SocketAddress()

~SocketAddress ( )
default

Destructor.

Member Function Documentation

◆ set_ip_address()

bool set_ip_address ( const char *  addr)

Set the IP address.

Parameters
addrNull-terminated represention of the IP address
Returns
True if address is a valid representation of an IP address, otherwise False and SocketAddress is set to null

◆ set_ip_bytes()

void set_ip_bytes ( const void *  bytes,
nsapi_version_t  version 
)

Set the raw IP bytes and IP version.

Parameters
bytesRaw IP address in big-endian order
versionIP address version, NSAPI_IPv4 or NSAPI_IPv6

◆ set_addr()

void set_addr ( const nsapi_addr_t addr)

Set the raw IP address.

Parameters
addrRaw IP address

◆ set_port()

void set_port ( uint16_t  port)

Set the port.

Parameters
port16-bit port

Definition at line 119 of file SocketAddress.h.

◆ get_ip_address()

const char * get_ip_address ( ) const

Get the human-readable IP address.

Allocates memory for a string and converts binary address to human-readable format. String is freed in the destructor.

Returns
Null-terminated representation of the IP Address

◆ get_ip_bytes()

const void * get_ip_bytes ( ) const

Get the raw IP bytes.

Returns
Raw IP address in big-endian order

Definition at line 137 of file SocketAddress.h.

◆ get_ip_version()

nsapi_version_t get_ip_version ( ) const

Get the IP address version.

Returns
IP address version, NSAPI_IPv4 or NSAPI_IPv6

Definition at line 146 of file SocketAddress.h.

◆ get_addr()

nsapi_addr_t get_addr ( ) const

Get the raw IP address.

Returns
Raw IP address

Definition at line 155 of file SocketAddress.h.

◆ get_port()

uint16_t get_port ( ) const

Get the port.

Returns
The 16-bit port

Definition at line 164 of file SocketAddress.h.

◆ operator bool()

operator bool ( ) const
explicit

Test if address is zero or empty.

Returns
True if address is not empty and not zero

◆ is_empty()

bool is_empty ( ) const
Returns
True iff this IP address is empty (does not contain a valid value).

Definition at line 179 of file SocketAddress.h.

◆ operator=()

SocketAddress & operator= ( const SocketAddress addr)

Copy address from another SocketAddress.

Parameters
addrSocketAddress to copy
Return values
SocketAddressreference to this address