Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::asio::socket_base Class Reference

The socket_base class is used as a base for the basic_stream_socket and basic_datagram_socket class templates so that we have a common place to define the shutdown_type and enum. More...

#include <socket_base.hpp>

Inheritance diagram for boost::asio::socket_base:

Public Types

enum  shutdown_type {
  shutdown_receive = BOOST_ASIO_OS_DEF(SHUT_RD),
  shutdown_send = BOOST_ASIO_OS_DEF(SHUT_WR),
  shutdown_both = BOOST_ASIO_OS_DEF(SHUT_RDWR)
}
 Different ways a socket may be shutdown. More...
 
typedef int message_flags
 Bitmask type for flags that can be passed to send and receive operations. More...
 
typedef
boost::asio::detail::socket_option::boolean
< BOOST_ASIO_OS_DEF(SOL_SOCKET),
BOOST_ASIO_OS_DEF(SO_BROADCAST)> 
broadcast
 Socket option to permit sending of broadcast messages. More...
 
typedef
boost::asio::detail::socket_option::boolean
< BOOST_ASIO_OS_DEF(SOL_SOCKET),
BOOST_ASIO_OS_DEF(SO_DEBUG)> 
debug
 Socket option to enable socket-level debugging. More...
 
typedef
boost::asio::detail::socket_option::boolean
< BOOST_ASIO_OS_DEF(SOL_SOCKET),
BOOST_ASIO_OS_DEF(SO_DONTROUTE)> 
do_not_route
 Socket option to prevent routing, use local interfaces only. More...
 
typedef
boost::asio::detail::socket_option::boolean
< BOOST_ASIO_OS_DEF(SOL_SOCKET),
BOOST_ASIO_OS_DEF(SO_KEEPALIVE)> 
keep_alive
 Socket option to send keep-alives. More...
 
typedef
boost::asio::detail::socket_option::integer
< BOOST_ASIO_OS_DEF(SOL_SOCKET),
BOOST_ASIO_OS_DEF(SO_SNDBUF)> 
send_buffer_size
 Socket option for the send buffer size of a socket. More...
 
typedef
boost::asio::detail::socket_option::integer
< BOOST_ASIO_OS_DEF(SOL_SOCKET),
BOOST_ASIO_OS_DEF(SO_SNDLOWAT)> 
send_low_watermark
 Socket option for the send low watermark. More...
 
typedef
boost::asio::detail::socket_option::integer
< BOOST_ASIO_OS_DEF(SOL_SOCKET),
BOOST_ASIO_OS_DEF(SO_RCVBUF)> 
receive_buffer_size
 Socket option for the receive buffer size of a socket. More...
 
typedef
boost::asio::detail::socket_option::integer
< BOOST_ASIO_OS_DEF(SOL_SOCKET),
BOOST_ASIO_OS_DEF(SO_RCVLOWAT)> 
receive_low_watermark
 Socket option for the receive low watermark. More...
 
typedef
boost::asio::detail::socket_option::boolean
< BOOST_ASIO_OS_DEF(SOL_SOCKET),
BOOST_ASIO_OS_DEF(SO_REUSEADDR)> 
reuse_address
 Socket option to allow the socket to be bound to an address that is already in use. More...
 
typedef
boost::asio::detail::socket_option::linger
< BOOST_ASIO_OS_DEF(SOL_SOCKET),
BOOST_ASIO_OS_DEF(SO_LINGER)> 
linger
 Socket option to specify whether the socket lingers on close if unsent data is present. More...
 
typedef
boost::asio::detail::socket_option::boolean
< boost::asio::detail::custom_socket_option_level,
boost::asio::detail::enable_connection_aborted_option > 
enable_connection_aborted
 Socket option to report aborted connections on accept. More...
 
typedef
boost::asio::detail::io_control::non_blocking_io 
non_blocking_io
 (Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. More...
 
typedef
boost::asio::detail::io_control::bytes_readable 
bytes_readable
 IO control command to get the amount of data that can be read without blocking. More...
 

Public Member Functions

 BOOST_ASIO_STATIC_CONSTANT (int, message_peek=BOOST_ASIO_OS_DEF(MSG_PEEK))
 
 BOOST_ASIO_STATIC_CONSTANT (int, message_out_of_band=BOOST_ASIO_OS_DEF(MSG_OOB))
 
 BOOST_ASIO_STATIC_CONSTANT (int, message_do_not_route=BOOST_ASIO_OS_DEF(MSG_DONTROUTE))
 
 BOOST_ASIO_STATIC_CONSTANT (int, message_end_of_record=BOOST_ASIO_OS_DEF(MSG_EOR))
 
 BOOST_ASIO_STATIC_CONSTANT (int, max_connections=BOOST_ASIO_OS_DEF(SOMAXCONN))
 The maximum length of the queue of pending incoming connections. More...
 

Protected Member Functions

 ~socket_base ()
 Protected destructor to prevent deletion through this type. More...
 

Detailed Description

The socket_base class is used as a base for the basic_stream_socket and basic_datagram_socket class templates so that we have a common place to define the shutdown_type and enum.

Member Typedef Documentation

typedef boost::asio::detail::socket_option::boolean< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_BROADCAST)> boost::asio::socket_base::broadcast

Socket option to permit sending of broadcast messages.

Implements the SOL_SOCKET/SO_BROADCAST socket option.

Examples
Setting the option:
boost::asio::ip::udp::socket socket(io_service);
...
boost::asio::socket_base::broadcast option(true);
socket.set_option(option);
Getting the current option value:
boost::asio::ip::udp::socket socket(io_service);
...
boost::asio::socket_base::broadcast option;
socket.get_option(option);
bool is_set = option.value();
Concepts:
Socket_Option, Boolean_Socket_Option.
typedef boost::asio::detail::io_control::bytes_readable boost::asio::socket_base::bytes_readable

IO control command to get the amount of data that can be read without blocking.

Implements the FIONREAD IO control command.

Example
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::bytes_readable command(true);
socket.io_control(command);
std::size_t bytes_readable = command.get();
Concepts:
IO_Control_Command, Size_IO_Control_Command.
typedef boost::asio::detail::socket_option::boolean< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_DEBUG)> boost::asio::socket_base::debug

Socket option to enable socket-level debugging.

Implements the SOL_SOCKET/SO_DEBUG socket option.

Examples
Setting the option:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::debug option(true);
socket.set_option(option);
Getting the current option value:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::debug option;
socket.get_option(option);
bool is_set = option.value();
Concepts:
Socket_Option, Boolean_Socket_Option.
typedef boost::asio::detail::socket_option::boolean< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_DONTROUTE)> boost::asio::socket_base::do_not_route

Socket option to prevent routing, use local interfaces only.

Implements the SOL_SOCKET/SO_DONTROUTE socket option.

Examples
Setting the option:
boost::asio::ip::udp::socket socket(io_service);
...
boost::asio::socket_base::do_not_route option(true);
socket.set_option(option);
Getting the current option value:
boost::asio::ip::udp::socket socket(io_service);
...
boost::asio::socket_base::do_not_route option;
socket.get_option(option);
bool is_set = option.value();
Concepts:
Socket_Option, Boolean_Socket_Option.
typedef boost::asio::detail::socket_option::boolean< boost::asio::detail::custom_socket_option_level, boost::asio::detail::enable_connection_aborted_option> boost::asio::socket_base::enable_connection_aborted

Socket option to report aborted connections on accept.

Implements a custom socket option that determines whether or not an accept operation is permitted to fail with boost::asio::error::connection_aborted. By default the option is false.

Examples
Setting the option:
boost::asio::ip::tcp::acceptor acceptor(io_service);
...
boost::asio::socket_base::enable_connection_aborted option(true);
acceptor.set_option(option);
Getting the current option value:
boost::asio::ip::tcp::acceptor acceptor(io_service);
...
boost::asio::socket_base::enable_connection_aborted option;
acceptor.get_option(option);
bool is_set = option.value();
Concepts:
Socket_Option, Boolean_Socket_Option.
typedef boost::asio::detail::socket_option::boolean< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_KEEPALIVE)> boost::asio::socket_base::keep_alive

Socket option to send keep-alives.

Implements the SOL_SOCKET/SO_KEEPALIVE socket option.

Examples
Setting the option:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::keep_alive option(true);
socket.set_option(option);
Getting the current option value:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::keep_alive option;
socket.get_option(option);
bool is_set = option.value();
Concepts:
Socket_Option, Boolean_Socket_Option.
typedef boost::asio::detail::socket_option::linger< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_LINGER)> boost::asio::socket_base::linger

Socket option to specify whether the socket lingers on close if unsent data is present.

Implements the SOL_SOCKET/SO_LINGER socket option.

Examples
Setting the option:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::linger option(true, 30);
socket.set_option(option);
Getting the current option value:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::linger option;
socket.get_option(option);
bool is_set = option.enabled();
unsigned short timeout = option.timeout();
Concepts:
Socket_Option, Linger_Socket_Option.

Bitmask type for flags that can be passed to send and receive operations.

typedef boost::asio::detail::io_control::non_blocking_io boost::asio::socket_base::non_blocking_io

(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket.

Implements the FIONBIO IO control command.

Example
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::non_blocking_io command(true);
socket.io_control(command);
Concepts:
IO_Control_Command, Boolean_IO_Control_Command.
typedef boost::asio::detail::socket_option::integer< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_RCVBUF)> boost::asio::socket_base::receive_buffer_size

Socket option for the receive buffer size of a socket.

Implements the SOL_SOCKET/SO_RCVBUF socket option.

Examples
Setting the option:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::receive_buffer_size option(8192);
socket.set_option(option);
Getting the current option value:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::receive_buffer_size option;
socket.get_option(option);
int size = option.value();
Concepts:
Socket_Option, Integer_Socket_Option.
typedef boost::asio::detail::socket_option::integer< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_RCVLOWAT)> boost::asio::socket_base::receive_low_watermark

Socket option for the receive low watermark.

Implements the SOL_SOCKET/SO_RCVLOWAT socket option.

Examples
Setting the option:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::receive_low_watermark option(1024);
socket.set_option(option);
Getting the current option value:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::receive_low_watermark option;
socket.get_option(option);
int size = option.value();
Concepts:
Socket_Option, Integer_Socket_Option.
typedef boost::asio::detail::socket_option::boolean< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_REUSEADDR)> boost::asio::socket_base::reuse_address

Socket option to allow the socket to be bound to an address that is already in use.

Implements the SOL_SOCKET/SO_REUSEADDR socket option.

Examples
Setting the option:
boost::asio::ip::tcp::acceptor acceptor(io_service);
...
boost::asio::socket_base::reuse_address option(true);
acceptor.set_option(option);
Getting the current option value:
boost::asio::ip::tcp::acceptor acceptor(io_service);
...
boost::asio::socket_base::reuse_address option;
acceptor.get_option(option);
bool is_set = option.value();
Concepts:
Socket_Option, Boolean_Socket_Option.
typedef boost::asio::detail::socket_option::integer< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_SNDBUF)> boost::asio::socket_base::send_buffer_size

Socket option for the send buffer size of a socket.

Implements the SOL_SOCKET/SO_SNDBUF socket option.

Examples
Setting the option:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::send_buffer_size option(8192);
socket.set_option(option);
Getting the current option value:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::send_buffer_size option;
socket.get_option(option);
int size = option.value();
Concepts:
Socket_Option, Integer_Socket_Option.
typedef boost::asio::detail::socket_option::integer< BOOST_ASIO_OS_DEF(SOL_SOCKET), BOOST_ASIO_OS_DEF(SO_SNDLOWAT)> boost::asio::socket_base::send_low_watermark

Socket option for the send low watermark.

Implements the SOL_SOCKET/SO_SNDLOWAT socket option.

Examples
Setting the option:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::send_low_watermark option(1024);
socket.set_option(option);
Getting the current option value:
boost::asio::ip::tcp::socket socket(io_service);
...
boost::asio::socket_base::send_low_watermark option;
socket.get_option(option);
int size = option.value();
Concepts:
Socket_Option, Integer_Socket_Option.

Member Enumeration Documentation

Different ways a socket may be shutdown.

Enumerator
shutdown_receive 
shutdown_send 
shutdown_both 

Constructor & Destructor Documentation

boost::asio::socket_base::~socket_base ( )
inlineprotected

Protected destructor to prevent deletion through this type.

Member Function Documentation

boost::asio::socket_base::BOOST_ASIO_STATIC_CONSTANT ( int  ,
message_peek  = BOOST_ASIO_OS_DEF(MSG_PEEK) 
)
boost::asio::socket_base::BOOST_ASIO_STATIC_CONSTANT ( int  ,
message_out_of_band  = BOOST_ASIO_OS_DEF(MSG_OOB) 
)
boost::asio::socket_base::BOOST_ASIO_STATIC_CONSTANT ( int  ,
message_do_not_route  = BOOST_ASIO_OS_DEF(MSG_DONTROUTE) 
)
boost::asio::socket_base::BOOST_ASIO_STATIC_CONSTANT ( int  ,
message_end_of_record  = BOOST_ASIO_OS_DEF(MSG_EOR) 
)
boost::asio::socket_base::BOOST_ASIO_STATIC_CONSTANT ( int  ,
max_connections  = BOOST_ASIO_OS_DEF(SOMAXCONN) 
)

The maximum length of the queue of pending incoming connections.


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