![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Asio
文章平均质量分 68
Asio C++ Library
丸子叮咚响
日拱一卒,功不唐捐。
展开
-
Asio Custom Memory Allocation
Asio Custom Memory Allocation翻译 2022-10-21 19:54:54 · 474 阅读 · 0 评论 -
Asio Line-Based Operations
许多常用的internet协议是基于行的,这意味着他们具有由字符序列"\r\n"分隔的协议元素。这样的协议有HTTP、SMTP和FTP。为更容易实现基于行的协议以及其他使用分隔符的协议,Asio包括read_until()和async_read_until()函数。...翻译 2022-07-29 20:15:23 · 464 阅读 · 0 评论 -
Asio Reactor-Style Operations
有时程序必须与想要自己执行 I/O 操作的第三方库集成。为了促进这一点,Asio 包括同步和异步操作,可用于等待套接字准备好读取、准备好写入或有待处理的错误条件。例如,要执行非阻塞读取,可以使用以下内容:ip::tcp::socket socket(my_io_context);...socket.non_blocking(true);...socket.async_wait(ip::tcp::socket::wait_read, read_handler);...void read_han翻译 2022-04-07 10:14:52 · 172 阅读 · 0 评论 -
Asio Streams, Short Reads and Short Writes
Asio 中的许多 I/O 对象都是面向流的。这意味着:没有消息边界。正在传输的数据是一个连续的字节序列。读取或写入操作传输的字节数可能少于请求的字节数。这称为短读或短写。提供面向流的 I/O 的对象模拟以下一种或多种类型要求:SyncReadStream,其中同步读取操作是使用成员函数read_some()执行的 。AsyncReadStream,其中异步读取操作是使用成员函数async_read_some()执行的。SyncWriteStream,其中同步写入操作是使用成员函数writ翻译 2022-04-07 10:02:24 · 194 阅读 · 0 评论 -
Asio Buffers
Buffers从根本上说,I/O涉及在内存的连续区域(称为缓冲区)之间传递数据。这些缓冲区可以简单地表示为由一个指针和一个以字节为单位的大小组成的元组。为了能够高效地开发网络应用程序,Asio包括对分散-收集操作(scatter-gather)的支持。这些操作涉及一个或多个缓冲区:分散-读(scatter-read)将数据接收到多个缓冲区中收集-写(gather-write) 传输到多个缓冲区因此我们需要一个抽象来表示缓冲区的集合。Asio使用的方法是定义一个类型(实际是两个类型)来表示单个缓冲翻译 2022-03-24 10:22:18 · 590 阅读 · 0 评论 -
Asio Strands: Use Threads Without Explicit Locking
链: 使用没有显式锁定的线程链(strand)被定义为事件处理程序的严格顺序调用(即没有并发调用)。链的使用允许在多线程程序中执行代码而不需要显式锁定(例如使用mutex)。stand可以是隐式的或者显式的,如以下替代方法所示:仅从一个线程调用io_context::run()意味着所有事件处理程序都在隐式链中执行,因为io_context保证处理程序只能从run()内部调用。如果存在与连接相关的单条异步操作链(例如,在HTTP等半双工协议实现中),则不可能同时执行处理程序,这是一条隐式链。显式翻译 2022-03-10 20:41:15 · 213 阅读 · 0 评论 -
Asio Threads and Asio
线程安全一般并发使用不同的对象是安全,但是并发使用单个对象并不安全。但是,诸如io_context类型提供了更强保证,即安全并发使用单个对象线程池多个线程通过调用io_context::run()建立线程池,可以从中调用完成处理程序。此方法也可与post()一起使用作为跨线程执行任意计算任务的一种方式。注意加入io_context池的所有线程都是等效的,并且io_context可以以任何方式在它们之间分配工作。内部线程特定平台的库实现可以试用一个或多个线程来模拟异步性。这些线程必须对库用户不可见翻译 2022-03-07 20:29:32 · 149 阅读 · 0 评论 -
Asio The Proactor Design Pattern: Concurrency Without Threads
Proactor 设计模式:没有线程的并发Asio库提供同步和异步操作的并行支持(side-by-side support)。异步支持基于Proactor设计模式。与仅同步或者Reactor方法相比,异步的优缺点概述如下:Proactor和Asio让我们看看Proactor设计模式在Asio中是如何实现的,而不参考特定于平台的细节。Proactor设计模式异步操作(Asynchronous Operation)定义异步执行的操作,例如对套接字的异步读写异步操作处理器(Asynchro翻译 2022-02-23 09:56:59 · 164 阅读 · 0 评论 -
Asio Basic Asio Anatomy
Basic Asio AnatomyAsio may be used to perform both synchronous and asynchronous operations on I/O objects such as sockets. Before using Asio it may be useful to get a conceptual picture of the various parts of Asio, your program, and how they work togethe翻译 2022-02-18 07:27:32 · 150 阅读 · 0 评论 -
Asio Rationale
RationaleMost programs interact with the outside world in some way, whether it be via a file, a network, a serial cable, or the console. Sometimes, as is the case with networking, individual I/O operations can take a long time to complete. This poses pa.翻译 2022-02-17 09:47:02 · 122 阅读 · 0 评论