asio 0.3.8rc3 | Home | Reference | Tutorial | Examples | Design

Reference | Class Hierarchy | Class Index | Member Index

# asio::socket_base Class Reference

Inherited by asio::basic_socket< Protocol, SocketService >, asio::basic_socket< Protocol, DatagramSocketService >, asio::basic_socket< Protocol, StreamSocketService >, and asio::basic_socket_acceptor< Protocol, SocketAcceptorService >.

Inheritance diagram for asio::socket_base:

List of all members.

## 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.

## Public Types

enum | shutdown_type { shutdown_receive = implementation_defined, shutdown_send = implementation_defined, shutdown_both = implementation_defined }
| 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.
typedef implementation_defined | broadcast
| Socket option to permit sending of broadcast messages.
typedef implementation_defined | debug
| Socket option to enable socket-level debugging.
typedef implementation_defined | do_not_route
| Socket option to prevent routing, use local interfaces only.
typedef implementation_defined | keep_alive
| Socket option to send keep-alives.
typedef implementation_defined | send_buffer_size
| Socket option for the send buffer size of a socket.
typedef implementation_defined | send_low_watermark
| Socket option for the send low watermark.
typedef implementation_defined | receive_buffer_size
| Socket option for the receive buffer size of a socket.
typedef implementation_defined | receive_low_watermark
| Socket option for the receive low watermark.
typedef implementation_defined | reuse_address
| Socket option to allow the socket to be bound to an address that is already in use.
typedef implementation_defined | linger
| Socket option to specify whether the socket lingers on close if unsent data is present.
typedef implementation_defined | enable_connection_aborted
| Socket option to report aborted connections on accept.
typedef implementation_defined | non_blocking_io
| IO control command to set the blocking mode of the socket.
typedef implementation_defined | bytes_readable
| IO control command to get the amount of data that can be read without blocking.

## Static Public Attributes

static const int | message_peek = implementation_defined
| Peek at incoming data without removing it from the input queue.
static const int | message_out_of_band = implementation_defined
| Process out-of-band data.
static const int | message_do_not_route = implementation_defined
| Specify that the data should not be subject to routing.
static const int | max_connections = implementation_defined
| The maximum length of the queue of pending incoming connections.

## Protected Member Functions

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

## Member Typedef Documentation

typedef int asio::socket_base::message_flags

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

typedef implementation_defined asio::socket_base::broadcast

Socket option to permit sending of broadcast messages.

Implements the SOL_SOCKET/SO_BROADCAST socket option.

Examples
  Setting the option:

       asio::ip::udp::socket socket(io_service);
       ...
       asio::socket_base::broadcast option(true);
       socket.set_option(option);

  Getting the current option value:

       asio::ip::udp::socket socket(io_service);
       ...
       asio::socket_base::broadcast option;
       socket.get_option(option);
       bool is_set = option.value();

Concepts:
  Socket_Option, Boolean_Socket_Option.

typedef implementation_defined asio::socket_base::debug

Socket option to enable socket-level debugging.

Implements the SOL_SOCKET/SO_DEBUG socket option.

Examples
  Setting the option:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::debug option(true);
       socket.set_option(option);

  Getting the current option value:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::debug option;
       socket.get_option(option);
       bool is_set = option.value();

Concepts:
  Socket_Option, Boolean_Socket_Option.

typedef implementation_defined 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:

       asio::ip::udp::socket socket(io_service);
       ...
       asio::socket_base::do_not_route option(true);
       socket.set_option(option);

  Getting the current option value:

       asio::ip::udp::socket socket(io_service);
       ...
       asio::socket_base::do_not_route option;
       socket.get_option(option);
       bool is_set = option.value();

Concepts:
  Socket_Option, Boolean_Socket_Option.

typedef implementation_defined asio::socket_base::keep_alive

Socket option to send keep-alives.

Implements the SOL_SOCKET/SO_KEEPALIVE socket option.

Examples
  Setting the option:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::keep_alive option(true);
       socket.set_option(option);

  Getting the current option value:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::keep_alive option;
       socket.get_option(option);
       bool is_set = option.value();

Concepts:
  Socket_Option, Boolean_Socket_Option.

typedef implementation_defined 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:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::send_buffer_size option(8192);
       socket.set_option(option);

  Getting the current option value:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::send_buffer_size option;
       socket.get_option(option);
       int size = option.value();

Concepts:
  Socket_Option, Integer_Socket_Option.

typedef implementation_defined 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:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::send_low_watermark option(1024);
       socket.set_option(option);

  Getting the current option value:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::send_low_watermark option;
       socket.get_option(option);
       int size = option.value();

Concepts:
  Socket_Option, Integer_Socket_Option.

typedef implementation_defined 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:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::receive_buffer_size option(8192);
       socket.set_option(option);

  Getting the current option value:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::receive_buffer_size option;
       socket.get_option(option);
       int size = option.value();

Concepts:
  Socket_Option, Integer_Socket_Option.

typedef implementation_defined 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:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::receive_low_watermark option(1024);
       socket.set_option(option);

  Getting the current option value:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::receive_low_watermark option;
       socket.get_option(option);
       int size = option.value();

Concepts:
  Socket_Option, Integer_Socket_Option.

typedef implementation_defined 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:

       asio::ip::tcp::acceptor acceptor(io_service);
       ...
       asio::socket_base::reuse_address option(true);
       acceptor.set_option(option);

  Getting the current option value:

       asio::ip::tcp::acceptor acceptor(io_service);
       ...
       asio::socket_base::reuse_address option;
       acceptor.get_option(option);
       bool is_set = option.value();

Concepts:
  Socket_Option, Boolean_Socket_Option.

typedef implementation_defined 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:

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::linger option(true, 30);
       socket.set_option(option);

  Getting the current option value:

       asio::ip::tcp::socket socket(io_service);
       ...
       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.

typedef implementation_defined 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 asio::error::connection_aborted. By default the option is false.

Examples
  Setting the option:

       asio::ip::tcp::acceptor acceptor(io_service);
       ...
       asio::socket_base::enable_connection_aborted option(true);
       acceptor.set_option(option);

  Getting the current option value:

       asio::ip::tcp::acceptor acceptor(io_service);
       ...
       asio::socket_base::enable_connection_aborted option;
       acceptor.get_option(option);
       bool is_set = option.value();

Concepts:
  Socket_Option, Boolean_Socket_Option.

typedef implementation_defined asio::socket_base::non_blocking_io

IO control command to set the blocking mode of the socket.

Implements the FIONBIO IO control command.

Example

       asio::ip::tcp::socket socket(io_service);
       ...
       asio::socket_base::non_blocking_io command(true);
       socket.io_control(command);

Concepts:
  IO_Control_Command, Boolean_IO_Control_Command.

typedef implementation_defined 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

       asio::ip::tcp::socket socket(io_service);
       ...
       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.

## Member Enumeration Documentation

enum asio::socket_base::shutdown_type

Different ways a socket may be shutdown.

Enumerator:

  shutdown_receive | Shutdown the receive side of the socket.
  shutdown_send | Shutdown the send side of the socket.
  shutdown_both | Shutdown both send and receive on the socket.

## Constructor & Destructor Documentation

asio::socket_base::~socket_base | ( |  | ) | `[protected]`

Protected destructor to prevent deletion through this type.

## Member Data Documentation

const int asio::socket_base::message_peek = implementation_defined`[static]`

Peek at incoming data without removing it from the input queue.

const int asio::socket_base::message_out_of_band = implementation_defined`[static]`

Process out-of-band data.

const int asio::socket_base::message_do_not_route = implementation_defined`[static]`

Specify that the data should not be subject to routing.

const int asio::socket_base::max_connections = implementation_defined`[static]`

The maximum length of the queue of pending incoming connections.

asio 0.3.8rc3 | Home | Reference | Tutorial | Examples | Design