The Micro C++ Library
micxx::InetAddress Class Reference

An InetAddress represents a BSD socket API compliant Internet Protocol (IPv4) specific SocketAddress. More...

#include <micxx.hxx>

Inherits micxx::SocketAddress.

Inherited by micxx::MulticastAddress.

List of all members.

Public Member Functions

 InetAddress (unsigned short port=0)
 Construct an InetAddress for the constant INADDR_ANY with the specified port.
 InetAddress (const std::string &hostname, unsigned short port=0)
 Construct an InetAddress for the specified hostname and the specified port.
virtual SocketAddressclone () const
 Return an exact copy of this InetAddress allocated by new.
virtual std::string getHost () const
 Returns the IPv4 standard dotted-decimal string representation of this InetAddress IP address.
virtual std::string getHostname () const
 Uses gethostbyaddr(const char*,int,int) to lookup the hostname.
virtual struct in_addr & getInetAddr ()
 The internal BSD socket API compatible structure of this InetAddress.
virtual struct in_addr & getInetAddr () const
 The const version of getInetAddr().
virtual unsigned short getPort () const
 The port of this InetAddress.
virtual void increment (unsigned n=1)
 Increment the numeric IPv4 address representation by n.
virtual bool isInAddrAny () const
 Check if this InetAddress IPv4 address represents the BSD socket API constant INADDR_ANY.
virtual void setAddress (const struct sockaddr *aaddress, socklen_t asize)
 (Re)set the stored address to aaddress with size asize.
virtual void setHostname (const std::string &hostname)
 Set either the IPv4 address part or the port or both from the specified hostname.
virtual void setPort (unsigned short port=0)
 Set the port to the specified port.
virtual std::string toString () const
 A default string representation of this InetAddress like n.n.n.n[:port] using the standard dotted format.

Static Public Member Functions

static std::string inetNtoA (struct in_addr &addr)
 Calls the Posix inet_ntoa(addr) synchronized by System::getMutex().

Static Public Attributes

static const InetAddress InAddrAny
 This InetAddress represents the BSD socket API constant INADDR_ANY.

Detailed Description

An InetAddress represents a BSD socket API compliant Internet Protocol (IPv4) specific SocketAddress.

An InetAddress stores an IPv4 address (Layer 3) and a port number (Layer 4).

The IPv4 address could either be specified as a hostname, or as a numeric string representation like n.n.n.n known as the standard dotted format.

Internally IPv4 addresses are always stored in a numeric integral format.

A hostname argument for an InetAddress may either be specified like hostname[:port] or like n.n.n.n[:port], where [ ] are not part of the string, but are used to note that :port is an optional part.

Author:
Norbert Klose
Date:
December, 2006

Constructor & Destructor Documentation

micxx::InetAddress::InetAddress ( unsigned short  port = 0)

Construct an InetAddress for the constant INADDR_ANY with the specified port.

Parameters:
portThe port to be used.
micxx::InetAddress::InetAddress ( const std::string &  hostname,
unsigned short  port = 0 
)

Construct an InetAddress for the specified hostname and the specified port.

Parameters:
hostnamea hostname or an IPv4 address in standard dotted format or a combination like host[:port] or n.n.n.n[:port]
porta port number between 0 and 65535

Member Function Documentation

virtual SocketAddress* micxx::InetAddress::clone ( ) const [virtual]

Return an exact copy of this InetAddress allocated by new.

Implements micxx::SocketAddress.

Reimplemented in micxx::MulticastAddress.

virtual std::string micxx::InetAddress::getHost ( ) const [virtual]

Returns the IPv4 standard dotted-decimal string representation of this InetAddress IP address.

virtual std::string micxx::InetAddress::getHostname ( ) const [virtual]

Uses gethostbyaddr(const char*,int,int) to lookup the hostname.

virtual struct in_addr& micxx::InetAddress::getInetAddr ( ) [read, virtual]

The internal BSD socket API compatible structure of this InetAddress.

virtual struct in_addr& micxx::InetAddress::getInetAddr ( ) const [read, virtual]

The const version of getInetAddr().

virtual unsigned short micxx::InetAddress::getPort ( ) const [virtual]

The port of this InetAddress.

virtual void micxx::InetAddress::increment ( unsigned  n = 1) [virtual]

Increment the numeric IPv4 address representation by n.

static std::string micxx::InetAddress::inetNtoA ( struct in_addr &  addr) [static]

Calls the Posix inet_ntoa(addr) synchronized by System::getMutex().

virtual bool micxx::InetAddress::isInAddrAny ( ) const [virtual]

Check if this InetAddress IPv4 address represents the BSD socket API constant INADDR_ANY.

Returns:
true if getInetAddr().s_addr is equal to INADDR_ANY,
false otherwise.
virtual void micxx::InetAddress::setAddress ( const struct sockaddr *  aaddress,
socklen_t  asize 
) [virtual]

(Re)set the stored address to aaddress with size asize.

In addition to SocketAddress::setAddress, this implementation also checks, if the size of aaddress is equal to size of struct sockaddr_in.

Reimplemented from micxx::SocketAddress.

virtual void micxx::InetAddress::setHostname ( const std::string &  hostname) [virtual]

Set either the IPv4 address part or the port or both from the specified hostname.

Parameters:
hostnamea hostname or an IPv4 address in standard dotted format or a combination like host[:port] or n.n.n.n[:port]

Reimplemented in micxx::MulticastAddress.

virtual void micxx::InetAddress::setPort ( unsigned short  port = 0) [virtual]

Set the port to the specified port.

virtual std::string micxx::InetAddress::toString ( ) const [virtual]

A default string representation of this InetAddress like n.n.n.n[:port] using the standard dotted format.

Reimplemented from micxx::SocketAddress.

Reimplemented in micxx::MulticastAddress.


Member Data Documentation

This InetAddress represents the BSD socket API constant INADDR_ANY.


The documentation for this class was generated from the following file: