Extensions for networking

From cppreference.com

The C++ Extensions for Networking, ISO/IEC TS 19216:2018, defines new components for the C++ standard library listed on this page.

The Networking TS is based on the C++14 standard as modified by version 1 of the Library Fundamentals TS. Its design is based on the Asio library.

Library named requirements

The following named requirements are used in the normative text of the Networking TS to define the expectations of the library. The burden is on the programmer to ensure that library templates are instantiated with template arguments that satisfy these requirements. Failure to do so may result in very complex compiler diagnostics or in undefined behavior at runtime.


(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)
represents a set of memory regions that may be used as input to an operation
(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

(named requirement)

Convenience headers

<experimental/net> convenience header that includes every other Networking TS header
<experimental/netfwd> contains forward declarations of major Networking TS components

Asynchronous model

Defined in header <experimental/executor>
Defined in namespace std::experimental::net
Asynchronous result

(class template)

(class template)

(class template)

(function template)
Execution context and services

(class)

(function template)

(function template)

(function template)

(class)
Executors

(class template)

(class)

(class template)

(class template)

(function template)

(class template)

(function template)

(class template)

(class)

(class)

(class)

(class)
Dispatch/post/defer

(function template)

(function template)

(function template)
Strand

(class template)
std::future interop

(class template)

Basic I/O services

Defined in header <experimental/io_context>
Defined in namespace std::experimental::net

(class)

Buffers and buffer-oriented streams

Defined in header <experimental/buffer>
Defined in namespace std::experimental::net
Stream error codes

(function)

(enum)
Buffers

(class)

(class)

(function template)
Buffer type traits

(class template)

(class template)

(class template)
Buffer sequence access

(function template)

(function template)
Buffer operations

(function template)

(function template)
Dynamic buffers

(class template)

(class template)

(function template)
Buffer I/O

(class)

(class)

(class)

(function template)

(function template)

(function template)

(function template)

(function template)

(function template)

Sockets and socket streams

Defined in header <experimental/socket>
Defined in namespace std::experimental::net
Socket error codes

(enum)

(function)
Sockets

(class)

(class template)

(class template)

(class template)

(class template)
Socket streams

(class template)

(class template)
Connect operations

(function template)

(function template)

Internet protocol

Defined in header <experimental/internet>
Defined in namespace std::experimental::net::ip
Resolver error codes

(enum)

(function)
IP addresses

(class)

(function template)

(class)

(function template)

(class)

(class)

(function template)
Address iteration

(class template)

(class template)
Networks

(class)

(function template)

(class)

(function template)
Endpoints

(class template)
Name resolution

(class template)

(class template)

(class)

(class template)
Host name

(function template)
TCP and UDP sockets

(class)

(class)
Socket options
Defined in namespace std::experimental::net::ip

(class)
Defined in namespace std::experimental::net::ip::unicast

(class)
Defined in namespace std::experimental::net::ip::multicast

(class)

(class)

(class)

(class)

(class)