Class Poco::Net::SocketAddress
Author: Applied Informatics Software Engineering GmbH and Contributors

# Poco::Net

# class SocketAddress

Library: Net
Package: NetCore
Header: Poco/Net/SocketAddress.h

## Description

This class represents an internet (IP) endpoint/socket address. The address can belong either to the IPv4 or the IPv6 address family and consists of a host address and a port number.

## Member Summary

Member Functions: addr, af, family, host, init, length, operator !=, operator <, operator =, operator ==, port, resolveService, toString

## Enumerations

### Anonymous

MAX_ADDRESS_LENGTH = sizeof (struct sockaddr_in6)

Maximum length in bytes of a socket address.

## Constructors

### SocketAddress

SocketAddress();

Creates a wildcard (all zero) IPv4 SocketAddress.

### SocketAddress

SocketAddress(
Poco::UInt16 port
);

Creates a SocketAddress with unspecified (wildcard) IP address and given port number.

### SocketAddress

explicit SocketAddress(
const std::string & hostAndPort
);

Creates a SocketAddress from an IP address or host name and the port number/service name. Host name/address and port number must be separated by a colon. In case of an IPv6 address, the address part must be enclosed in brackets.

Examples:

    192.168.1.10:80
    [::ffff:192.168.1.120]:2040
    www.appinf.com:8080

### SocketAddress

SocketAddress(
const SocketAddress & addr
);

Creates a SocketAddress by copying another one.

### SocketAddress

SocketAddress(
const IPAddress & hostAddress,
Poco::UInt16 portNumber
);

Creates a SocketAddress from an IP address and given port number.

### SocketAddress

SocketAddress(
const std::string & hostAddress,
Poco::UInt16 portNumber
);

Creates a SocketAddress from an IP address and given port number.

The IP address must either be a domain name, or it must be in dotted decimal (IPv4) or hex string (IPv6) format.

### SocketAddress

SocketAddress(
const std::string & hostAddress,
const std::string & portNumber
);

Creates a SocketAddress from an IP address and the service name or port number.

The IP address must either be a domain name, or it must be in dotted decimal (IPv4) or hex string (IPv6) format.

The given port must either be a decimal port number, or a service name.

### SocketAddress

SocketAddress(
const struct sockaddr * addr,
socklen_t length
);

Creates a SocketAddress from a native socket address.

## Destructor

### ~SocketAddress

~SocketAddress();

Destroys the SocketAddress.

## Member Functions

### addr

const struct sockaddr * addr() const;

Returns a pointer to the internal native socket address.

### af

int af() const;

Returns the address family (AF_INET or AF_INET6) of the address.

### family

IPAddress::Family family() const;

Returns the address family of the host's address.

### host

IPAddress host() const;

Returns the host IP address.

### length

socklen_t length() const;

Returns the length of the internal native socket address.

### operator !=

bool operator != (
const SocketAddress & socketAddress
) const;

### operator <

bool operator < (
const SocketAddress & socketAddress
) const;

### operator =

SocketAddress & operator = (
const SocketAddress & socketAddress
);

Assigns another SocketAddress.

### operator ==

bool operator == (
const SocketAddress & socketAddress
) const;

### port

Poco::UInt16 port() const;

Returns the port number.

### toString

std::string toString() const;

Returns a string representation of the address.

### init

void init(
const IPAddress & hostAddress,
Poco::UInt16 portNumber
);

### init

void init(
const std::string & hostAddress,
Poco::UInt16 portNumber
);

### resolveService

Poco::UInt16 resolveService(
const std::string & service
);