@john-lee
2021-01-02T13:54:55.000000Z
字数 1000
阅读 982
Boost.Asio
Boost.Asio 中的许多 I/O 对象是面向流的。这意味着:
提供面向流的 I/O 模型的一个或多个以下类型要求的对象:
SyncReadStream
,其中同步读取操作使用称为read_some()
的成员函数执行。AsyncReadStream
,其中异步读取操作使用名为async_read_some()
的成员函数执行。SyncWriteStream
,其中同步写入操作使用名为write_some()
的成员函数执行。AsyncWriteStream
,其中异步写入操作使用称为async_write_some()
的成员函数执行。面向流的 I/O 对象的示例包括ip::tcp::socket
、ssl::stream<>
、posix::stream_descriptor
、windows::stream_handle
等待。
程序通常要传输精确的字节数。当发生短读或短写时,程序必须重新启动操作,并继续这样做,直到传输了所需的字节数。Boost.Asio 提供自动执行此操作的常规函数:read()
、async_read()
、write()
和async_write()
。
read
、async_read
、read_until
或async_read_until
函数违反其约定。例如,由于 EOF,读取 N 个字节可能会提前完成。async_read(), async_write(), read(), write(), AsyncReadStream, AsyncWriteStream, SyncReadStream, SyncWriteStream.
Copyright © 2003-2020 Christopher M. Kohlhoff
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)