1#ifndef UPnPsdk_NET_SOCKADDR_HPP
2#define UPnPsdk_NET_SOCKADDR_HPP
35 ::sockaddr_storage ss;
76 std::string_view a_port_str,
79 in_port_t*
const a_port_num =
nullptr) noexcept;
109 std::string_view a_addr_str,
114 std::
string& a_serv);
135 sockaddr_storage& ss = m_sa_union.
ss;
137 sockaddr_un& sun = m_sa_union.sun;
139 sockaddr_in6& sin6 = m_sa_union.sin6;
141 sockaddr_in& sin = m_sa_union.sin;
143 sockaddr& sa = m_sa_union.sa;
233 std::string_view a_addr_str);
244 void operator=(
const in_port_t a_port);
257 void operator=(const ::sockaddr_storage& a_ss);
285 const std::string netaddr() noexcept;
296 const std::
string netaddrp() noexcept;
301 in_port_t port() const;
306 socklen_t sizeof_saddr() const;
312 bool is_loopback() const;
Helpful union of the different socket address structures.
int to_port(std::string_view a_port_str, in_port_t *const a_port_num=nullptr) noexcept
Free function to check if a string represents a valid port number.
UPnPsdk_API::std::ostream & operator<<(::std::ostream &os, SSockaddr &saddr)
output the netaddress
void split_addr_port(std::string_view a_addr_str, std::string &a_addr, std::string &a_serv)
Free function to split inet address and port(service)
Reengineered Object Oriented UPnP+ program code.
Specifications to be portable between different platforms.
Specifications to be portable with sockets between different platforms.
Trivial ::sockaddr structures enhanced with methods.
sockaddr_storage & ss
Reference to sockaddr_storage struct.
Macros to support visibility of external symbols.