|  | Home | Libraries | People | FAQ | More | 
Many I/O objects in Boost.Asio are stream-oriented. This means that:
Objects that provide stream-oriented I/O model one or more of the following type requirements:
SyncReadStream, where
              synchronous read operations are performed using a member function called
              read_some().
            AsyncReadStream, where
              asynchronous read operations are performed using a member function
              called async_read_some().
            SyncWriteStream, where
              synchronous write operations are performed using a member function
              called write_some().
            AsyncWriteStream, where
              synchronous write operations are performed using a member function
              called async_write_some().
            
          Examples of stream-oriented I/O objects include ip::tcp::socket,
          ssl::stream<>,
          posix::stream_descriptor, windows::stream_handle,
          etc.
        
          Programs typically want to transfer an exact number of bytes. When a short
          read or short write occurs the program must restart the operation, and
          continue to do so until the required number of bytes has been transferred.
          Boost.Asio provides generic functions that do this automatically: read(),
          async_read(),
          write()
          and async_write().
        
read,
              async_read, read_until or async_read_until
              functions to violate their contract. E.g. a read of N bytes may finish
              early due to EOF.
            async_read(), async_write(), read(), write(), AsyncReadStream, AsyncWriteStream, SyncReadStream, SyncWriteStream.