Reference | Class Hierarchy | Class Index | Member Index |
The basic_stream_socket class template provides asynchronous and blocking stream-oriented socket functionality.
Public Types | |
typedef StreamSocketService::native_type | native_type |
The native representation of a socket. | |
typedef Protocol | protocol_type |
The protocol type. | |
typedef Protocol::endpoint | endpoint_type |
The endpoint type. | |
typedef basic_socket< Protocol, StreamSocketService > | lowest_layer_type |
A basic_socket is always the lowest layer. | |
typedef StreamSocketService | service_type |
The type of the service that will be used to provide I/O operations. | |
typedef service_type::implementation_type | implementation_type |
The underlying implementation type of I/O object. | |
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. | |
Public Member Functions | |
basic_stream_socket (asio::io_service &io_service) | |
Construct a basic_stream_socket without opening it. | |
basic_stream_socket (asio::io_service &io_service, const protocol_type &protocol) | |
Construct and open a basic_stream_socket. | |
basic_stream_socket (asio::io_service &io_service, const endpoint_type &endpoint) | |
Construct a basic_stream_socket, opening it and binding it to the given local endpoint. | |
basic_stream_socket (asio::io_service &io_service, const protocol_type &protocol, const native_type &native_socket) | |
Construct a basic_stream_socket on an existing native socket. | |
template<typename ConstBufferSequence> | |
std::size_t | send (const ConstBufferSequence &buffers) |
Send some data on the socket. | |
template<typename ConstBufferSequence> | |
std::size_t | send (const ConstBufferSequence &buffers, socket_base::message_flags flags) |
Send some data on the socket. | |
template<typename ConstBufferSequence> | |
std::size_t | send (const ConstBufferSequence &buffers, socket_base::message_flags flags, asio::error_code &ec) |
Send some data on the socket. | |
template<typename ConstBufferSequence, typename WriteHandler> | |
void | async_send (const ConstBufferSequence &buffers, WriteHandler handler) |
Start an asynchronous send. | |
template<typename ConstBufferSequence, typename WriteHandler> | |
void | async_send (const ConstBufferSequence &buffers, socket_base::message_flags flags, WriteHandler handler) |
Start an asynchronous send. | |
template<typename MutableBufferSequence> | |
std::size_t | receive (const MutableBufferSequence &buffers) |
Receive some data on the socket. | |
template<typename MutableBufferSequence> | |
std::size_t | receive (const MutableBufferSequence &buffers, socket_base::message_flags flags) |
Receive some data on the socket. | |
template<typename MutableBufferSequence> | |
std::size_t | receive (const MutableBufferSequence &buffers, socket_base::message_flags flags, asio::error_code &ec) |
Receive some data on a connected socket. | |
template<typename MutableBufferSequence, typename ReadHandler> | |
void | async_receive (const MutableBufferSequence &buffers, ReadHandler handler) |
Start an asynchronous receive. | |
template<typename MutableBufferSequence, typename ReadHandler> | |
void | async_receive (const MutableBufferSequence &buffers, socket_base::message_flags flags, ReadHandler handler) |
Start an asynchronous receive. | |
template<typename ConstBufferSequence> | |
std::size_t | write_some (const ConstBufferSequence &buffers) |
Write some data to the socket. | |
template<typename ConstBufferSequence> | |
std::size_t | write_some (const ConstBufferSequence &buffers, asio::error_code &ec) |
Write some data to the socket. | |
template<typename ConstBufferSequence, typename WriteHandler> | |
void | async_write_some (const ConstBufferSequence &buffers, WriteHandler handler) |
Start an asynchronous write. | |
template<typename MutableBufferSequence> | |
std::size_t | read_some (const MutableBufferSequence &buffers) |
Read some data from the socket. | |
template<typename MutableBufferSequence> | |
std::size_t | read_some (const MutableBufferSequence &buffers, asio::error_code &ec) |
Read some data from the socket. | |
template<typename MutableBufferSequence, typename ReadHandler> | |
void | async_read_some (const MutableBufferSequence &buffers, ReadHandler handler) |
Start an asynchronous read. | |
lowest_layer_type & | lowest_layer () |
Get a reference to the lowest layer. | |
void | open (const protocol_type &protocol=protocol_type()) |
Open the socket using the specified protocol. | |
asio::error_code | open (const protocol_type &protocol, asio::error_code &ec) |
Open the socket using the specified protocol. | |
void | assign (const protocol_type &protocol, const native_type &native_socket) |
Assign an existing native socket to the socket. | |
asio::error_code | assign (const protocol_type &protocol, const native_type &native_socket, asio::error_code &ec) |
Assign an existing native socket to the socket. | |
bool | is_open () const |
Determine whether the socket is open. | |
void | close () |
Close the socket. | |
asio::error_code | close (asio::error_code &ec) |
Close the socket. | |
native_type | native () |
Get the native socket representation. | |
void | cancel () |
Cancel all asynchronous operations associated with the socket. | |
asio::error_code | cancel (asio::error_code &ec) |
Cancel all asynchronous operations associated with the socket. | |
bool | at_mark () const |
Determine whether the socket is at the out-of-band data mark. | |
bool | at_mark (asio::error_code &ec) const |
Determine whether the socket is at the out-of-band data mark. | |
std::size_t | available () const |
Determine the number of bytes available for reading. | |
std::size_t | available (asio::error_code &ec) const |
Determine the number of bytes available for reading. | |
void | bind (const endpoint_type &endpoint) |
Bind the socket to the given local endpoint. | |
asio::error_code | bind (const endpoint_type &endpoint, asio::error_code &ec) |
Bind the socket to the given local endpoint. | |
void | connect (const endpoint_type &peer_endpoint) |
Connect the socket to the specified endpoint. | |
asio::error_code | connect (const endpoint_type &peer_endpoint, asio::error_code &ec) |
Connect the socket to the specified endpoint. | |
void | async_connect (const endpoint_type &peer_endpoint, ConnectHandler handler) |
Start an asynchronous connect. | |
void | set_option (const SettableSocketOption &option) |
Set an option on the socket. | |
asio::error_code | set_option (const SettableSocketOption &option, asio::error_code &ec) |
Set an option on the socket. | |
void | get_option (GettableSocketOption &option) const |
Get an option from the socket. | |
asio::error_code | get_option (GettableSocketOption &option, asio::error_code &ec) const |
Get an option from the socket. | |
void | io_control (IoControlCommand &command) |
Perform an IO control command on the socket. | |
asio::error_code | io_control (IoControlCommand &command, asio::error_code &ec) |
Perform an IO control command on the socket. | |
endpoint_type | local_endpoint () const |
Get the local endpoint of the socket. | |
endpoint_type | local_endpoint (asio::error_code &ec) const |
Get the local endpoint of the socket. | |
endpoint_type | remote_endpoint () const |
Get the remote endpoint of the socket. | |
endpoint_type | remote_endpoint (asio::error_code &ec) const |
Get the remote endpoint of the socket. | |
void | shutdown (shutdown_type what) |
Disable sends or receives on the socket. | |
asio::error_code | shutdown (shutdown_type what, asio::error_code &ec) |
Disable sends or receives on the socket. | |
asio::io_service & | io_service () |
Get the io_service associated with the object. | |
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. |
typedef StreamSocketService::native_type asio::basic_stream_socket< Protocol, StreamSocketService >::native_type |
The native representation of a socket.
Reimplemented from asio::basic_socket< Protocol, StreamSocketService >.
typedef Protocol asio::basic_stream_socket< Protocol, StreamSocketService >::protocol_type |
typedef Protocol::endpoint asio::basic_stream_socket< Protocol, StreamSocketService >::endpoint_type |
typedef basic_socket<Protocol , StreamSocketService > asio::basic_socket< Protocol , StreamSocketService >::lowest_layer_type [inherited] |
A basic_socket is always the lowest layer.
typedef StreamSocketService asio::basic_io_object< StreamSocketService >::service_type [inherited] |
The type of the service that will be used to provide I/O operations.
typedef service_type::implementation_type asio::basic_io_object< StreamSocketService >::implementation_type [inherited] |
The underlying implementation type of I/O object.
typedef int asio::socket_base::message_flags [inherited] |
Bitmask type for flags that can be passed to send and receive operations.
typedef implementation_defined asio::socket_base::broadcast [inherited] |
Socket option to permit sending of broadcast messages.
Implements the SOL_SOCKET/SO_BROADCAST socket option.
asio::ip::udp::socket socket(io_service); ... asio::socket_base::broadcast option(true); socket.set_option(option);
asio::ip::udp::socket socket(io_service); ... asio::socket_base::broadcast option; socket.get_option(option); bool is_set = option.value();
typedef implementation_defined asio::socket_base::debug [inherited] |
Socket option to enable socket-level debugging.
Implements the SOL_SOCKET/SO_DEBUG socket option.
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::debug option(true); socket.set_option(option);
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::debug option; socket.get_option(option); bool is_set = option.value();
typedef implementation_defined asio::socket_base::do_not_route [inherited] |
Socket option to prevent routing, use local interfaces only.
Implements the SOL_SOCKET/SO_DONTROUTE socket option.
asio::ip::udp::socket socket(io_service); ... asio::socket_base::do_not_route option(true); socket.set_option(option);
asio::ip::udp::socket socket(io_service); ... asio::socket_base::do_not_route option; socket.get_option(option); bool is_set = option.value();
typedef implementation_defined asio::socket_base::keep_alive [inherited] |
Socket option to send keep-alives.
Implements the SOL_SOCKET/SO_KEEPALIVE socket option.
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::keep_alive option(true); socket.set_option(option);
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::keep_alive option; socket.get_option(option); bool is_set = option.value();
typedef implementation_defined asio::socket_base::send_buffer_size [inherited] |
Socket option for the send buffer size of a socket.
Implements the SOL_SOCKET/SO_SNDBUF socket option.
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::send_buffer_size option(8192); socket.set_option(option);
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::send_buffer_size option; socket.get_option(option); int size = option.value();
typedef implementation_defined asio::socket_base::send_low_watermark [inherited] |
Socket option for the send low watermark.
Implements the SOL_SOCKET/SO_SNDLOWAT socket option.
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::send_low_watermark option(1024); socket.set_option(option);
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::send_low_watermark option; socket.get_option(option); int size = option.value();
typedef implementation_defined asio::socket_base::receive_buffer_size [inherited] |
Socket option for the receive buffer size of a socket.
Implements the SOL_SOCKET/SO_RCVBUF socket option.
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::receive_buffer_size option(8192); socket.set_option(option);
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::receive_buffer_size option; socket.get_option(option); int size = option.value();
typedef implementation_defined asio::socket_base::receive_low_watermark [inherited] |
Socket option for the receive low watermark.
Implements the SOL_SOCKET/SO_RCVLOWAT socket option.
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::receive_low_watermark option(1024); socket.set_option(option);
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::receive_low_watermark option; socket.get_option(option); int size = option.value();
typedef implementation_defined asio::socket_base::reuse_address [inherited] |
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.
asio::ip::tcp::acceptor acceptor(io_service); ... asio::socket_base::reuse_address option(true); acceptor.set_option(option);
asio::ip::tcp::acceptor acceptor(io_service); ... asio::socket_base::reuse_address option; acceptor.get_option(option); bool is_set = option.value();
typedef implementation_defined asio::socket_base::linger [inherited] |
Socket option to specify whether the socket lingers on close if unsent data is present.
Implements the SOL_SOCKET/SO_LINGER socket option.
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::linger option(true, 30); socket.set_option(option);
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();
typedef implementation_defined asio::socket_base::enable_connection_aborted [inherited] |
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.
asio::ip::tcp::acceptor acceptor(io_service); ... asio::socket_base::enable_connection_aborted option(true); acceptor.set_option(option);
asio::ip::tcp::acceptor acceptor(io_service); ... asio::socket_base::enable_connection_aborted option; acceptor.get_option(option); bool is_set = option.value();
typedef implementation_defined asio::socket_base::non_blocking_io [inherited] |
IO control command to set the blocking mode of the socket.
Implements the FIONBIO IO control command.
asio::ip::tcp::socket socket(io_service); ... asio::socket_base::non_blocking_io command(true); socket.io_control(command);
typedef implementation_defined asio::socket_base::bytes_readable [inherited] |
IO control command to get the amount of data that can be read without blocking.
Implements the FIONREAD IO control command.
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();
enum asio::socket_base::shutdown_type [inherited] |
asio::basic_stream_socket< Protocol, StreamSocketService >::basic_stream_socket | ( | asio::io_service & | io_service | ) | [explicit] |
Construct a basic_stream_socket without opening it.
This constructor creates a stream socket without opening it. The socket needs to be opened and then connected or accepted before data can be sent or received on it.
io_service | The io_service object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket. |
asio::basic_stream_socket< Protocol, StreamSocketService >::basic_stream_socket | ( | asio::io_service & | io_service, | |
const protocol_type & | protocol | |||
) |
Construct and open a basic_stream_socket.
This constructor creates and opens a stream socket. The socket needs to be connected or accepted before data can be sent or received on it.
io_service | The io_service object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket. | |
protocol | An object specifying protocol parameters to be used. |
asio::system_error | Thrown on failure. |
asio::basic_stream_socket< Protocol, StreamSocketService >::basic_stream_socket | ( | asio::io_service & | io_service, | |
const endpoint_type & | endpoint | |||
) |
Construct a basic_stream_socket, opening it and binding it to the given local endpoint.
This constructor creates a stream socket and automatically opens it bound to the specified endpoint on the local machine. The protocol used is the protocol associated with the given endpoint.
io_service | The io_service object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket. | |
endpoint | An endpoint on the local machine to which the stream socket will be bound. |
asio::system_error | Thrown on failure. |
asio::basic_stream_socket< Protocol, StreamSocketService >::basic_stream_socket | ( | asio::io_service & | io_service, | |
const protocol_type & | protocol, | |||
const native_type & | native_socket | |||
) |
Construct a basic_stream_socket on an existing native socket.
This constructor creates a stream socket object to hold an existing native socket.
io_service | The io_service object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket. | |
protocol | An object specifying protocol parameters to be used. | |
native_socket | The new underlying socket implementation. |
asio::system_error | Thrown on failure. |
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::send | ( | const ConstBufferSequence & | buffers | ) |
Send some data on the socket.
This function is used to send data on the stream socket. The function call will block until one or more bytes of the data has been sent successfully, or an until error occurs.
buffers | One or more data buffers to be sent on the socket. |
asio::system_error | Thrown on failure. |
socket.send(asio::buffer(data, size));
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::send | ( | const ConstBufferSequence & | buffers, | |
socket_base::message_flags | flags | |||
) |
Send some data on the socket.
This function is used to send data on the stream socket. The function call will block until one or more bytes of the data has been sent successfully, or an until error occurs.
buffers | One or more data buffers to be sent on the socket. | |
flags | Flags specifying how the send call is to be made. |
asio::system_error | Thrown on failure. |
socket.send(asio::buffer(data, size), 0);
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::send | ( | const ConstBufferSequence & | buffers, | |
socket_base::message_flags | flags, | |||
asio::error_code & | ec | |||
) |
Send some data on the socket.
This function is used to send data on the stream socket. The function call will block until one or more bytes of the data has been sent successfully, or an until error occurs.
buffers | One or more data buffers to be sent on the socket. | |
flags | Flags specifying how the send call is to be made. | |
ec | Set to indicate what error occurred, if any. |
void asio::basic_stream_socket< Protocol, StreamSocketService >::async_send | ( | const ConstBufferSequence & | buffers, | |
WriteHandler | handler | |||
) |
Start an asynchronous send.
This function is used to asynchronously send data on the stream socket. The function call always returns immediately.
buffers | One or more data buffers to be sent on the socket. Although the buffers object may be copied as necessary, ownership of the underlying memory blocks is retained by the caller, which must guarantee that they remain valid until the handler is called. | |
handler | The handler to be called when the send operation completes. Copies will be made of the handler as required. The function signature of the handler must be: void handler( const asio::error_code& error, // Result of operation. std::size_t bytes_transferred // Number of bytes sent. ); |
socket.async_send(asio::buffer(data, size), handler);
void asio::basic_stream_socket< Protocol, StreamSocketService >::async_send | ( | const ConstBufferSequence & | buffers, | |
socket_base::message_flags | flags, | |||
WriteHandler | handler | |||
) |
Start an asynchronous send.
This function is used to asynchronously send data on the stream socket. The function call always returns immediately.
buffers | One or more data buffers to be sent on the socket. Although the buffers object may be copied as necessary, ownership of the underlying memory blocks is retained by the caller, which must guarantee that they remain valid until the handler is called. | |
flags | Flags specifying how the send call is to be made. | |
handler | The handler to be called when the send operation completes. Copies will be made of the handler as required. The function signature of the handler must be: void handler( const asio::error_code& error, // Result of operation. std::size_t bytes_transferred // Number of bytes sent. ); |
socket.async_send(asio::buffer(data, size), 0, handler);
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::receive | ( | const MutableBufferSequence & | buffers | ) |
Receive some data on the socket.
This function is used to receive data on the stream socket. The function call will block until one or more bytes of data has been received successfully, or until an error occurs.
buffers | One or more buffers into which the data will be received. |
asio::system_error | Thrown on failure. An error code of asio::error::eof indicates that the connection was closed by the peer. |
socket.receive(asio::buffer(data, size));
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::receive | ( | const MutableBufferSequence & | buffers, | |
socket_base::message_flags | flags | |||
) |
Receive some data on the socket.
This function is used to receive data on the stream socket. The function call will block until one or more bytes of data has been received successfully, or until an error occurs.
buffers | One or more buffers into which the data will be received. | |
flags | Flags specifying how the receive call is to be made. |
asio::system_error | Thrown on failure. An error code of asio::error::eof indicates that the connection was closed by the peer. |
socket.receive(asio::buffer(data, size), 0);
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::receive | ( | const MutableBufferSequence & | buffers, | |
socket_base::message_flags | flags, | |||
asio::error_code & | ec | |||
) |
Receive some data on a connected socket.
This function is used to receive data on the stream socket. The function call will block until one or more bytes of data has been received successfully, or until an error occurs.
buffers | One or more buffers into which the data will be received. | |
flags | Flags specifying how the receive call is to be made. | |
ec | Set to indicate what error occurred, if any. |
void asio::basic_stream_socket< Protocol, StreamSocketService >::async_receive | ( | const MutableBufferSequence & | buffers, | |
ReadHandler | handler | |||
) |
Start an asynchronous receive.
This function is used to asynchronously receive data from the stream socket. The function call always returns immediately.
buffers | One or more buffers into which the data will be received. Although the buffers object may be copied as necessary, ownership of the underlying memory blocks is retained by the caller, which must guarantee that they remain valid until the handler is called. | |
handler | The handler to be called when the receive operation completes. Copies will be made of the handler as required. The function signature of the handler must be: void handler( const asio::error_code& error, // Result of operation. std::size_t bytes_transferred // Number of bytes received. ); |
socket.async_receive(asio::buffer(data, size), handler);
void asio::basic_stream_socket< Protocol, StreamSocketService >::async_receive | ( | const MutableBufferSequence & | buffers, | |
socket_base::message_flags | flags, | |||
ReadHandler | handler | |||
) |
Start an asynchronous receive.
This function is used to asynchronously receive data from the stream socket. The function call always returns immediately.
buffers | One or more buffers into which the data will be received. Although the buffers object may be copied as necessary, ownership of the underlying memory blocks is retained by the caller, which must guarantee that they remain valid until the handler is called. | |
flags | Flags specifying how the receive call is to be made. | |
handler | The handler to be called when the receive operation completes. Copies will be made of the handler as required. The function signature of the handler must be: void handler( const asio::error_code& error, // Result of operation. std::size_t bytes_transferred // Number of bytes received. ); |
socket.async_receive(asio::buffer(data, size), 0, handler);
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::write_some | ( | const ConstBufferSequence & | buffers | ) |
Write some data to the socket.
This function is used to write data to the stream socket. The function call will block until one or more bytes of the data has been written successfully, or until an error occurs.
buffers | One or more data buffers to be written to the socket. |
asio::system_error | Thrown on failure. An error code of asio::error::eof indicates that the connection was closed by the peer. |
socket.write_some(asio::buffer(data, size));
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::write_some | ( | const ConstBufferSequence & | buffers, | |
asio::error_code & | ec | |||
) |
Write some data to the socket.
This function is used to write data to the stream socket. The function call will block until one or more bytes of the data has been written successfully, or until an error occurs.
buffers | One or more data buffers to be written to the socket. | |
ec | Set to indicate what error occurred, if any. |
void asio::basic_stream_socket< Protocol, StreamSocketService >::async_write_some | ( | const ConstBufferSequence & | buffers, | |
WriteHandler | handler | |||
) |
Start an asynchronous write.
This function is used to asynchronously write data to the stream socket. The function call always returns immediately.
buffers | One or more data buffers to be written to the socket. Although the buffers object may be copied as necessary, ownership of the underlying memory blocks is retained by the caller, which must guarantee that they remain valid until the handler is called. | |
handler | The handler to be called when the write operation completes. Copies will be made of the handler as required. The function signature of the handler must be: void handler( const asio::error_code& error, // Result of operation. std::size_t bytes_transferred // Number of bytes written. ); |
socket.async_write_some(asio::buffer(data, size), handler);
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::read_some | ( | const MutableBufferSequence & | buffers | ) |
Read some data from the socket.
This function is used to read data from the stream socket. The function call will block until one or more bytes of data has been read successfully, or until an error occurs.
buffers | One or more buffers into which the data will be read. |
asio::system_error | Thrown on failure. An error code of asio::error::eof indicates that the connection was closed by the peer. |
socket.read_some(asio::buffer(data, size));
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::read_some | ( | const MutableBufferSequence & | buffers, | |
asio::error_code & | ec | |||
) |
Read some data from the socket.
This function is used to read data from the stream socket. The function call will block until one or more bytes of data has been read successfully, or until an error occurs.
buffers | One or more buffers into which the data will be read. | |
ec | Set to indicate what error occurred, if any. |
void asio::basic_stream_socket< Protocol, StreamSocketService >::async_read_some | ( | const MutableBufferSequence & | buffers, | |
ReadHandler | handler | |||
) |
Start an asynchronous read.
This function is used to asynchronously read data from the stream socket. The function call always returns immediately.
buffers | One or more buffers into which the data will be read. Although the buffers object may be copied as necessary, ownership of the underlying memory blocks is retained by the caller, which must guarantee that they remain valid until the handler is called. | |
handler | The handler to be called when the read operation completes. Copies will be made of the handler as required. The function signature of the handler must be: void handler( const asio::error_code& error, // Result of operation. std::size_t bytes_transferred // Number of bytes read. ); |
socket.async_read_some(asio::buffer(data, size), handler);
lowest_layer_type& asio::basic_socket< Protocol , StreamSocketService >::lowest_layer | ( | ) | [inherited] |
Get a reference to the lowest layer.
This function returns a reference to the lowest layer in a stack of layers. Since a basic_socket cannot contain any further layers, it simply returns a reference to itself.
void asio::basic_socket< Protocol , StreamSocketService >::open | ( | const protocol_type & | protocol = protocol_type() |
) | [inherited] |
Open the socket using the specified protocol.
This function opens the socket so that it will use the specified protocol.
protocol | An object specifying protocol parameters to be used. |
asio::system_error | Thrown on failure. |
asio::ip::tcp::socket socket(io_service); socket.open(asio::ip::tcp::v4());
asio::error_code asio::basic_socket< Protocol , StreamSocketService >::open | ( | const protocol_type & | protocol, | |
asio::error_code & | ec | |||
) | [inherited] |
Open the socket using the specified protocol.
This function opens the socket so that it will use the specified protocol.
protocol | An object specifying which protocol is to be used. | |
ec | Set to indicate what error occurred, if any. |
asio::ip::tcp::socket socket(io_service); asio::error_code ec; socket.open(asio::ip::tcp::v4(), ec); if (ec) { // An error occurred. }
void asio::basic_socket< Protocol , StreamSocketService >::assign | ( | const protocol_type & | protocol, | |
const native_type & | native_socket | |||
) | [inherited] |
Assign an existing native socket to the socket.
asio::error_code asio::basic_socket< Protocol , StreamSocketService >::assign | ( | const protocol_type & | protocol, | |
const native_type & | native_socket, | |||
asio::error_code & | ec | |||
) | [inherited] |
Assign an existing native socket to the socket.
bool asio::basic_socket< Protocol , StreamSocketService >::is_open | ( | ) | const [inherited] |
Determine whether the socket is open.
void asio::basic_socket< Protocol , StreamSocketService >::close | ( | ) | [inherited] |
Close the socket.
This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the asio::error::operation_aborted error.
asio::system_error | Thrown on failure. |
Reimplemented in asio::basic_socket_streambuf< Protocol, StreamSocketService >.
asio::error_code asio::basic_socket< Protocol , StreamSocketService >::close | ( | asio::error_code & | ec | ) | [inherited] |
Close the socket.
This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the asio::error::operation_aborted error.
ec | Set to indicate what error occurred, if any. |
asio::ip::tcp::socket socket(io_service); ... asio::error_code ec; socket.close(ec); if (ec) { // An error occurred. }
native_type asio::basic_socket< Protocol , StreamSocketService >::native | ( | ) | [inherited] |
Get the native socket representation.
This function may be used to obtain the underlying representation of the socket. This is intended to allow access to native socket functionality that is not otherwise provided.
void asio::basic_socket< Protocol , StreamSocketService >::cancel | ( | ) | [inherited] |
Cancel all asynchronous operations associated with the socket.
This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the asio::error::operation_aborted error.
asio::system_error | Thrown on failure. |
asio::error_code asio::basic_socket< Protocol , StreamSocketService >::cancel | ( | asio::error_code & | ec | ) | [inherited] |
Cancel all asynchronous operations associated with the socket.
This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the asio::error::operation_aborted error.
ec | Set to indicate what error occurred, if any. |
bool asio::basic_socket< Protocol , StreamSocketService >::at_mark | ( | ) | const [inherited] |
Determine whether the socket is at the out-of-band data mark.
This function is used to check whether the socket input is currently positioned at the out-of-band data mark.
asio::system_error | Thrown on failure. |
bool asio::basic_socket< Protocol , StreamSocketService >::at_mark | ( | asio::error_code & | ec | ) | const [inherited] |
Determine whether the socket is at the out-of-band data mark.
This function is used to check whether the socket input is currently positioned at the out-of-band data mark.
ec | Set to indicate what error occurred, if any. |
std::size_t asio::basic_socket< Protocol , StreamSocketService >::available | ( | ) | const [inherited] |
Determine the number of bytes available for reading.
This function is used to determine the number of bytes that may be read without blocking.
asio::system_error | Thrown on failure. |
std::size_t asio::basic_socket< Protocol , StreamSocketService >::available | ( | asio::error_code & | ec | ) | const [inherited] |
void asio::basic_socket< Protocol , StreamSocketService >::bind | ( | const endpoint_type & | endpoint | ) | [inherited] |
Bind the socket to the given local endpoint.
This function binds the socket to the specified endpoint on the local machine.
endpoint | An endpoint on the local machine to which the socket will be bound. |
asio::system_error | Thrown on failure. |
asio::ip::tcp::socket socket(io_service); socket.open(asio::ip::tcp::v4()); socket.bind(asio::ip::tcp::endpoint( asio::ip::tcp::v4(), 12345));
asio::error_code asio::basic_socket< Protocol , StreamSocketService >::bind | ( | const endpoint_type & | endpoint, | |
asio::error_code & | ec | |||
) | [inherited] |
Bind the socket to the given local endpoint.
This function binds the socket to the specified endpoint on the local machine.
endpoint | An endpoint on the local machine to which the socket will be bound. | |
ec | Set to indicate what error occurred, if any. |
asio::ip::tcp::socket socket(io_service); socket.open(asio::ip::tcp::v4()); asio::error_code ec; socket.bind(asio::ip::tcp::endpoint( asio::ip::tcp::v4(), 12345), ec); if (ec) { // An error occurred. }
void asio::basic_socket< Protocol , StreamSocketService >::connect | ( | const endpoint_type & | peer_endpoint | ) | [inherited] |
Connect the socket to the specified endpoint.
This function is used to connect a socket to the specified remote endpoint. The function call will block until the connection is successfully made or an error occurs.
The socket is automatically opened if it is not already open. If the connect fails, and the socket was automatically opened, the socket is returned to the closed state.
peer_endpoint | The remote endpoint to which the socket will be connected. |
asio::system_error | Thrown on failure. |
asio::ip::tcp::socket socket(io_service); asio::ip::tcp::endpoint endpoint( asio::ip::address::from_string("1.2.3.4"), 12345); socket.connect(endpoint);
Reimplemented in asio::basic_socket_streambuf< Protocol, StreamSocketService >.
asio::error_code asio::basic_socket< Protocol , StreamSocketService >::connect | ( | const endpoint_type & | peer_endpoint, | |
asio::error_code & | ec | |||
) | [inherited] |
Connect the socket to the specified endpoint.
This function is used to connect a socket to the specified remote endpoint. The function call will block until the connection is successfully made or an error occurs.
The socket is automatically opened if it is not already open. If the connect fails, and the socket was automatically opened, the socket is returned to the closed state.
peer_endpoint | The remote endpoint to which the socket will be connected. | |
ec | Set to indicate what error occurred, if any. |
asio::ip::tcp::socket socket(io_service); asio::ip::tcp::endpoint endpoint( asio::ip::address::from_string("1.2.3.4"), 12345); asio::error_code ec; socket.connect(endpoint, ec); if (ec) { // An error occurred. }
void asio::basic_socket< Protocol , StreamSocketService >::async_connect | ( | const endpoint_type & | peer_endpoint, | |
ConnectHandler | handler | |||
) | [inherited] |
Start an asynchronous connect.
This function is used to asynchronously connect a socket to the specified remote endpoint. The function call always returns immediately.
The socket is automatically opened if it is not already open. If the connect fails, and the socket was automatically opened, the socket is returned to the closed state.
peer_endpoint | The remote endpoint to which the socket will be connected. Copies will be made of the endpoint object as required. | |
handler | The handler to be called when the connection operation completes. Copies will be made of the handler as required. The function signature of the handler must be: void handler( const asio::error_code& error // Result of operation ); |
void connect_handler(const asio::error_code& error) { if (!error) { // Connect succeeded. } } ... asio::ip::tcp::socket socket(io_service); asio::ip::tcp::endpoint endpoint( asio::ip::address::from_string("1.2.3.4"), 12345); socket.async_connect(endpoint, connect_handler);
void asio::basic_socket< Protocol , StreamSocketService >::set_option | ( | const SettableSocketOption & | option | ) | [inherited] |
Set an option on the socket.
This function is used to set an option on the socket.
option | The new option value to be set on the socket. |
asio::system_error | Thrown on failure. |
asio::ip::tcp::socket socket(io_service); ... asio::ip::tcp::no_delay option(true); socket.set_option(option);
asio::error_code asio::basic_socket< Protocol , StreamSocketService >::set_option | ( | const SettableSocketOption & | option, | |
asio::error_code & | ec | |||
) | [inherited] |
Set an option on the socket.
This function is used to set an option on the socket.
option | The new option value to be set on the socket. | |
ec | Set to indicate what error occurred, if any. |
asio::ip::tcp::socket socket(io_service); ... asio::ip::tcp::no_delay option(true); asio::error_code ec; socket.set_option(option, ec); if (ec) { // An error occurred. }
void asio::basic_socket< Protocol , StreamSocketService >::get_option | ( | GettableSocketOption & | option | ) | const [inherited] |
Get an option from the socket.
This function is used to get the current value of an option on the socket.
option | The option value to be obtained from the socket. |
asio::system_error | Thrown on failure. |
asio::ip::tcp::socket socket(io_service); ... asio::ip::tcp::socket::keep_alive option; socket.get_option(option); bool is_set = option.get();
asio::error_code asio::basic_socket< Protocol , StreamSocketService >::get_option | ( | GettableSocketOption & | option, | |
asio::error_code & | ec | |||
) | const [inherited] |
Get an option from the socket.
This function is used to get the current value of an option on the socket.
option | The option value to be obtained from the socket. | |
ec | Set to indicate what error occurred, if any. |
asio::ip::tcp::socket socket(io_service); ... asio::ip::tcp::socket::keep_alive option; asio::error_code ec; socket.get_option(option, ec); if (ec) { // An error occurred. } bool is_set = option.get();
void asio::basic_socket< Protocol , StreamSocketService >::io_control | ( | IoControlCommand & | command | ) | [inherited] |
Perform an IO control command on the socket.
This function is used to execute an IO control command on the socket.
command | The IO control command to be performed on the socket. |
asio::system_error | Thrown on failure. |
asio::ip::tcp::socket socket(io_service); ... asio::ip::tcp::socket::bytes_readable command; socket.io_control(command); std::size_t bytes_readable = command.get();
asio::error_code asio::basic_socket< Protocol , StreamSocketService >::io_control | ( | IoControlCommand & | command, | |
asio::error_code & | ec | |||
) | [inherited] |
Perform an IO control command on the socket.
This function is used to execute an IO control command on the socket.
command | The IO control command to be performed on the socket. | |
ec | Set to indicate what error occurred, if any. |
asio::ip::tcp::socket socket(io_service); ... asio::ip::tcp::socket::bytes_readable command; asio::error_code ec; socket.io_control(command, ec); if (ec) { // An error occurred. } std::size_t bytes_readable = command.get();
endpoint_type asio::basic_socket< Protocol , StreamSocketService >::local_endpoint | ( | ) | const [inherited] |
Get the local endpoint of the socket.
This function is used to obtain the locally bound endpoint of the socket.
asio::system_error | Thrown on failure. |
asio::ip::tcp::socket socket(io_service); ... asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
endpoint_type asio::basic_socket< Protocol , StreamSocketService >::local_endpoint | ( | asio::error_code & | ec | ) | const [inherited] |
Get the local endpoint of the socket.
This function is used to obtain the locally bound endpoint of the socket.
ec | Set to indicate what error occurred, if any. |
asio::ip::tcp::socket socket(io_service); ... asio::error_code ec; asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec); if (ec) { // An error occurred. }
endpoint_type asio::basic_socket< Protocol , StreamSocketService >::remote_endpoint | ( | ) | const [inherited] |
Get the remote endpoint of the socket.
This function is used to obtain the remote endpoint of the socket.
asio::system_error | Thrown on failure. |
asio::ip::tcp::socket socket(io_service); ... asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
endpoint_type asio::basic_socket< Protocol , StreamSocketService >::remote_endpoint | ( | asio::error_code & | ec | ) | const [inherited] |
Get the remote endpoint of the socket.
This function is used to obtain the remote endpoint of the socket.
ec | Set to indicate what error occurred, if any. |
asio::ip::tcp::socket socket(io_service); ... asio::error_code ec; asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec); if (ec) { // An error occurred. }
void asio::basic_socket< Protocol , StreamSocketService >::shutdown | ( | shutdown_type | what | ) | [inherited] |
Disable sends or receives on the socket.
This function is used to disable send operations, receive operations, or both.
what | Determines what types of operation will no longer be allowed. |
asio::system_error | Thrown on failure. |
asio::ip::tcp::socket socket(io_service); ... socket.shutdown(asio::ip::tcp::socket::shutdown_send);
asio::error_code asio::basic_socket< Protocol , StreamSocketService >::shutdown | ( | shutdown_type | what, | |
asio::error_code & | ec | |||
) | [inherited] |
Disable sends or receives on the socket.
This function is used to disable send operations, receive operations, or both.
what | Determines what types of operation will no longer be allowed. | |
ec | Set to indicate what error occurred, if any. |
asio::ip::tcp::socket socket(io_service); ... asio::error_code ec; socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec); if (ec) { // An error occurred. }
asio::io_service& asio::basic_io_object< StreamSocketService >::io_service | ( | ) | [inherited] |
Get the io_service associated with the object.
This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
const int asio::socket_base::message_peek = implementation_defined [static, inherited] |
Peek at incoming data without removing it from the input queue.
const int asio::socket_base::message_out_of_band = implementation_defined [static, inherited] |
Process out-of-band data.
const int asio::socket_base::message_do_not_route = implementation_defined [static, inherited] |
Specify that the data should not be subject to routing.
const int asio::socket_base::max_connections = implementation_defined [static, inherited] |
The maximum length of the queue of pending incoming connections.