# 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, swap, toString

## Enumerations

### Anonymous

MAX_ADDRESS_LENGTH = sizeof (struct sockaddr_in)

Maximum length in bytes of a socket address.

## Constructors

### SocketAddress

SocketAddress();

Creates a wildcard (all zero) IPv4 SocketAddress.

### SocketAddress

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

Creates a SocketAddress from an IP address or host name and a 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 & host,
Poco::UInt16 port
);

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

### SocketAddress

SocketAddress(
const std::string & host,
Poco::UInt16 port
);

Creates a SocketAddress from an IP address and a 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 & host,
const std::string & port
);

Creates a SocketAddress from an IP address and a 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 & addr
) const;

### operator <

bool operator < (
const SocketAddress & addr
) const;

### operator =

SocketAddress & operator = (
const SocketAddress & addr
);

Assigns another SocketAddress.

### operator ==

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

### port

Poco::UInt16 port() const;

Returns the port number.

### swap

void swap(
SocketAddress & addr
);

Swaps the SocketAddress with another one.

### toString

std::string toString() const;

Returns a string representation of the address.

### init

void init(
const IPAddress & host,
Poco::UInt16 port
);

### init

void init(
const std::string & host,
Poco::UInt16 port
);

### resolveService

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