All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions
asio::basic_stream_socket< Protocol, StreamSocketService > Class Template Reference

Provides stream-oriented socket functionality. More...

#include <basic_stream_socket.hpp>

Inheritance diagram for asio::basic_stream_socket< Protocol, StreamSocketService >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef Protocol::endpoint endpoint_type
 The endpoint type.
typedef
StreamSocketService::native_type 
native_type
 The native representation of a socket.
typedef Protocol protocol_type
 The protocol type.

Public Member Functions

template<typename MutableBufferSequence , typename ReadHandler >
void async_read_some (const MutableBufferSequence &buffers, ReadHandler handler)
 Start an asynchronous read.
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 , 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 ConstBufferSequence , typename WriteHandler >
void async_write_some (const ConstBufferSequence &buffers, WriteHandler handler)
 Start an asynchronous write.
 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)
 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 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 >
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 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 >
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.

Detailed Description

template<typename Protocol, typename StreamSocketService = stream_socket_service<Protocol>>
class asio::basic_stream_socket< Protocol, StreamSocketService >

Provides stream-oriented socket functionality.

The basic_stream_socket class template provides asynchronous and blocking stream-oriented socket functionality.

Thread Safety
Distinct objects: Safe.
Shared objects: Unsafe.
Concepts:
AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream.

Definition at line 46 of file basic_stream_socket.hpp.


Member Typedef Documentation

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
typedef Protocol::endpoint asio::basic_stream_socket< Protocol, StreamSocketService >::endpoint_type

The endpoint type.

Reimplemented from asio::basic_socket< Protocol, StreamSocketService >.

Definition at line 57 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
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 >.

Definition at line 51 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
typedef Protocol asio::basic_stream_socket< Protocol, StreamSocketService >::protocol_type

The protocol type.

Reimplemented from asio::basic_socket< Protocol, StreamSocketService >.

Definition at line 54 of file basic_stream_socket.hpp.


Constructor & Destructor Documentation

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
asio::basic_stream_socket< Protocol, StreamSocketService >::basic_stream_socket ( asio::io_service io_service) [inline, 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.

Parameters:
io_serviceThe io_service object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket.

Definition at line 68 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
asio::basic_stream_socket< Protocol, StreamSocketService >::basic_stream_socket ( asio::io_service io_service,
const protocol_type protocol 
) [inline]

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.

Parameters:
io_serviceThe io_service object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket.
protocolAn object specifying protocol parameters to be used.
Exceptions:
asio::system_errorThrown on failure.

Definition at line 85 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
asio::basic_stream_socket< Protocol, StreamSocketService >::basic_stream_socket ( asio::io_service io_service,
const endpoint_type endpoint 
) [inline]

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.

Parameters:
io_serviceThe io_service object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket.
endpointAn endpoint on the local machine to which the stream socket will be bound.
Exceptions:
asio::system_errorThrown on failure.

Definition at line 106 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
asio::basic_stream_socket< Protocol, StreamSocketService >::basic_stream_socket ( asio::io_service io_service,
const protocol_type protocol,
const native_type native_socket 
) [inline]

Construct a basic_stream_socket on an existing native socket.

This constructor creates a stream socket object to hold an existing native socket.

Parameters:
io_serviceThe io_service object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket.
protocolAn object specifying protocol parameters to be used.
native_socketThe new underlying socket implementation.
Exceptions:
asio::system_errorThrown on failure.

Definition at line 126 of file basic_stream_socket.hpp.


Member Function Documentation

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename MutableBufferSequence , typename ReadHandler >
void asio::basic_stream_socket< Protocol, StreamSocketService >::async_read_some ( const MutableBufferSequence &  buffers,
ReadHandler  handler 
) [inline]

Start an asynchronous read.

This function is used to asynchronously read data from the stream socket. The function call always returns immediately.

Parameters:
buffersOne 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.
handlerThe 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.
 ); 
Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using asio::io_service::post().
Note:
The read operation may not read all of the requested number of bytes. Consider using the asio::async_read function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
Example
To read into a single data buffer use the asio::buffer function as follows:
 socket.async_read_some(asio::buffer(data, size), handler);
See the asio::buffer documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Definition at line 707 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename MutableBufferSequence , typename ReadHandler >
void asio::basic_stream_socket< Protocol, StreamSocketService >::async_receive ( const MutableBufferSequence &  buffers,
ReadHandler  handler 
) [inline]

Start an asynchronous receive.

This function is used to asynchronously receive data from the stream socket. The function call always returns immediately.

Parameters:
buffersOne 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.
handlerThe 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.
 ); 
Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using asio::io_service::post().
Note:
The receive operation may not receive all of the requested number of bytes. Consider using the asio::async_read function if you need to ensure that the requested amount of data is received before the asynchronous operation completes.
Example
To receive into a single data buffer use the asio::buffer function as follows:
 socket.async_receive(asio::buffer(data, size), handler);
See the asio::buffer documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Definition at line 457 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename MutableBufferSequence , typename ReadHandler >
void asio::basic_stream_socket< Protocol, StreamSocketService >::async_receive ( const MutableBufferSequence &  buffers,
socket_base::message_flags  flags,
ReadHandler  handler 
) [inline]

Start an asynchronous receive.

This function is used to asynchronously receive data from the stream socket. The function call always returns immediately.

Parameters:
buffersOne 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.
flagsFlags specifying how the receive call is to be made.
handlerThe 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.
 ); 
Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using asio::io_service::post().
Note:
The receive operation may not receive all of the requested number of bytes. Consider using the asio::async_read function if you need to ensure that the requested amount of data is received before the asynchronous operation completes.
Example
To receive into a single data buffer use the asio::buffer function as follows:
 socket.async_receive(asio::buffer(data, size), 0, handler);
See the asio::buffer documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Definition at line 502 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename ConstBufferSequence , typename WriteHandler >
void asio::basic_stream_socket< Protocol, StreamSocketService >::async_send ( const ConstBufferSequence &  buffers,
WriteHandler  handler 
) [inline]

Start an asynchronous send.

This function is used to asynchronously send data on the stream socket. The function call always returns immediately.

Parameters:
buffersOne 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.
handlerThe 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.
 ); 
Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using asio::io_service::post().
Note:
The send operation may not transmit all of the data to the peer. Consider using the asio::async_write function if you need to ensure that all data is written before the asynchronous operation completes.
Example
To send a single data buffer use the asio::buffer function as follows:
 socket.async_send(asio::buffer(data, size), handler);
See the asio::buffer documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Definition at line 267 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename ConstBufferSequence , typename WriteHandler >
void asio::basic_stream_socket< Protocol, StreamSocketService >::async_send ( const ConstBufferSequence &  buffers,
socket_base::message_flags  flags,
WriteHandler  handler 
) [inline]

Start an asynchronous send.

This function is used to asynchronously send data on the stream socket. The function call always returns immediately.

Parameters:
buffersOne 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.
flagsFlags specifying how the send call is to be made.
handlerThe 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.
 ); 
Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using asio::io_service::post().
Note:
The send operation may not transmit all of the data to the peer. Consider using the asio::async_write function if you need to ensure that all data is written before the asynchronous operation completes.
Example
To send a single data buffer use the asio::buffer function as follows:
 socket.async_send(asio::buffer(data, size), 0, handler);
See the asio::buffer documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Definition at line 310 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename ConstBufferSequence , typename WriteHandler >
void asio::basic_stream_socket< Protocol, StreamSocketService >::async_write_some ( const ConstBufferSequence &  buffers,
WriteHandler  handler 
) [inline]

Start an asynchronous write.

This function is used to asynchronously write data to the stream socket. The function call always returns immediately.

Parameters:
buffersOne 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.
handlerThe 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.
 ); 
Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using asio::io_service::post().
Note:
The write operation may not transmit all of the data to the peer. Consider using the asio::async_write function if you need to ensure that all data is written before the asynchronous operation completes.
Example
To write a single data buffer use the asio::buffer function as follows:
 socket.async_write_some(asio::buffer(data, size), handler);
See the asio::buffer documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Definition at line 603 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename MutableBufferSequence >
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::read_some ( const MutableBufferSequence &  buffers) [inline]

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.

Parameters:
buffersOne or more buffers into which the data will be read.
Returns:
The number of bytes read.
Exceptions:
asio::system_errorThrown on failure. An error code of asio::error::eof indicates that the connection was closed by the peer.
Note:
The read_some operation may not read all of the requested number of bytes. Consider using the asio::read function if you need to ensure that the requested amount of data is read before the blocking operation completes.
Example
To read into a single data buffer use the asio::buffer function as follows:
 socket.read_some(asio::buffer(data, size));
See the asio::buffer documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Definition at line 638 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename MutableBufferSequence >
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::read_some ( const MutableBufferSequence &  buffers,
asio::error_code ec 
) [inline]

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.

Parameters:
buffersOne or more buffers into which the data will be read.
ecSet to indicate what error occurred, if any.
Returns:
The number of bytes read. Returns 0 if an error occurred.
Note:
The read_some operation may not read all of the requested number of bytes. Consider using the asio::read function if you need to ensure that the requested amount of data is read before the blocking operation completes.

Definition at line 664 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename MutableBufferSequence >
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::receive ( const MutableBufferSequence &  buffers) [inline]

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.

Parameters:
buffersOne or more buffers into which the data will be received.
Returns:
The number of bytes received.
Exceptions:
asio::system_errorThrown on failure. An error code of asio::error::eof indicates that the connection was closed by the peer.
Note:
The receive operation may not receive all of the requested number of bytes. Consider using the asio::read function if you need to ensure that the requested amount of data is read before the blocking operation completes.
Example
To receive into a single data buffer use the asio::buffer function as follows:
 socket.receive(asio::buffer(data, size));
See the asio::buffer documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Definition at line 345 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename MutableBufferSequence >
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::receive ( const MutableBufferSequence &  buffers,
socket_base::message_flags  flags 
) [inline]

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.

Parameters:
buffersOne or more buffers into which the data will be received.
flagsFlags specifying how the receive call is to be made.
Returns:
The number of bytes received.
Exceptions:
asio::system_errorThrown on failure. An error code of asio::error::eof indicates that the connection was closed by the peer.
Note:
The receive operation may not receive all of the requested number of bytes. Consider using the asio::read function if you need to ensure that the requested amount of data is read before the blocking operation completes.
Example
To receive into a single data buffer use the asio::buffer function as follows:
 socket.receive(asio::buffer(data, size), 0);
See the asio::buffer documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Definition at line 384 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename MutableBufferSequence >
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::receive ( const MutableBufferSequence &  buffers,
socket_base::message_flags  flags,
asio::error_code ec 
) [inline]

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.

Parameters:
buffersOne or more buffers into which the data will be received.
flagsFlags specifying how the receive call is to be made.
ecSet to indicate what error occurred, if any.
Returns:
The number of bytes received. Returns 0 if an error occurred.
Note:
The receive operation may not receive all of the requested number of bytes. Consider using the asio::read function if you need to ensure that the requested amount of data is read before the blocking operation completes.

Definition at line 413 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename ConstBufferSequence >
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::send ( const ConstBufferSequence &  buffers) [inline]

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.

Parameters:
buffersOne or more data buffers to be sent on the socket.
Returns:
The number of bytes sent.
Exceptions:
asio::system_errorThrown on failure.
Note:
The send operation may not transmit all of the data to the peer. Consider using the asio::write function if you need to ensure that all data is written before the blocking operation completes.
Example
To send a single data buffer use the asio::buffer function as follows:
 socket.send(asio::buffer(data, size));
See the asio::buffer documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Definition at line 159 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename ConstBufferSequence >
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::send ( const ConstBufferSequence &  buffers,
socket_base::message_flags  flags 
) [inline]

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.

Parameters:
buffersOne or more data buffers to be sent on the socket.
flagsFlags specifying how the send call is to be made.
Returns:
The number of bytes sent.
Exceptions:
asio::system_errorThrown on failure.
Note:
The send operation may not transmit all of the data to the peer. Consider using the asio::write function if you need to ensure that all data is written before the blocking operation completes.
Example
To send a single data buffer use the asio::buffer function as follows:
 socket.send(asio::buffer(data, size), 0);
See the asio::buffer documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Definition at line 196 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename ConstBufferSequence >
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::send ( const ConstBufferSequence &  buffers,
socket_base::message_flags  flags,
asio::error_code ec 
) [inline]

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.

Parameters:
buffersOne or more data buffers to be sent on the socket.
flagsFlags specifying how the send call is to be made.
ecSet to indicate what error occurred, if any.
Returns:
The number of bytes sent. Returns 0 if an error occurred.
Note:
The send operation may not transmit all of the data to the peer. Consider using the asio::write function if you need to ensure that all data is written before the blocking operation completes.

Definition at line 225 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename ConstBufferSequence >
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::write_some ( const ConstBufferSequence &  buffers) [inline]

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.

Parameters:
buffersOne or more data buffers to be written to the socket.
Returns:
The number of bytes written.
Exceptions:
asio::system_errorThrown on failure. An error code of asio::error::eof indicates that the connection was closed by the peer.
Note:
The write_some operation may not transmit all of the data to the peer. Consider using the asio::write function if you need to ensure that all data is written before the blocking operation completes.
Example
To write a single data buffer use the asio::buffer function as follows:
 socket.write_some(asio::buffer(data, size));
See the asio::buffer documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Definition at line 536 of file basic_stream_socket.hpp.

template<typename Protocol , typename StreamSocketService = stream_socket_service<Protocol>>
template<typename ConstBufferSequence >
std::size_t asio::basic_stream_socket< Protocol, StreamSocketService >::write_some ( const ConstBufferSequence &  buffers,
asio::error_code ec 
) [inline]

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.

Parameters:
buffersOne or more data buffers to be written to the socket.
ecSet to indicate what error occurred, if any.
Returns:
The number of bytes written. Returns 0 if an error occurred.
Note:
The write_some operation may not transmit all of the data to the peer. Consider using the asio::write function if you need to ensure that all data is written before the blocking operation completes.

Definition at line 561 of file basic_stream_socket.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


Castor
Author(s): Carpe Noctem
autogenerated on Fri Nov 8 2013 11:05:40