青山相待

            白云相爱

            梦不到紫罗袍共黄金带

            一茅斋

            野花开

            管甚谁家兴废谁成败

            陋巷单瓢亦乐哉

            贫,气不改!

            达,志不改!

随笔分类 -  Boost

摘要:许多异步操作需要申请一个对象来保存操作状态,比如,win32需要OVERLAPPED导出的对象来传递给win32  API函数。此外,程序通常包括简单的可辨明的异步操作链,一个半双工协议(比如HTTP)为每一个client保存一个异步操作链(发送以后就是接收),一个全双工的协议可能拥有两个并行执行的 阅读全文
posted @ 2016-03-13 23:34 Leo.Z 阅读(440) 评论(0) 推荐(1)
摘要:许多广泛应用的网络协议是基于行的,这意味着许多协议元素通过"\r\n"来分割,比如HTTP、SMPT、FTP,为了更方便的实现基于行的协议,和其他基于分隔符的协议一样,Boost::Asio包括了read_until() 和async_read_until()。下面的例子阐述了async_read_ 阅读全文
posted @ 2016-03-13 16:00 Leo.Z 阅读(215) 评论(0) 推荐(1)
摘要:有的时候程序必须依赖第三方库来完成I/O操作,鉴于这种情况,Boost::Asio提供了一个null_buffers 类型可以同时完成读和写操作,null_buffers 直到执行I/O操作的对象就绪才返回。下面是一个执行非阻塞的读操作的例子ip::tcp::socket socket(my_io_ 阅读全文
posted @ 2016-03-13 15:46 Leo.Z 阅读(197) 评论(0) 推荐(1)
摘要:Boost::Asio中的许多I/O对象是流导向的,这意味着; @没有消息边界,在传输的数据是一个连续的字节序列 @读或者写传输的字节可能比请求更小,这就是被称作简短的读或者写 提供流定向模型的对象一个或者多个下列类型的必要条件:SyncReadStream,使用成员函数read_some()执行同 阅读全文
posted @ 2016-03-13 15:39 Leo.Z 阅读(219) 评论(0) 推荐(1)
摘要:从根本上讲,I/O包含了数据从源到目的地的连续内存的传输,这叫做缓存,这些缓存可以简单的描述为包含了一个指针和一组字节数据的元组,然而,为了支持高效网络应用程序的开发,Boost::Asio支持分散-聚合操作,这些操作同时支持一个或多个缓存。分散读 接收数据并写入多重缓存中。分散写 传输数据给多个缓 阅读全文
posted @ 2016-03-13 15:17 Leo.Z 阅读(241) 评论(0) 推荐(1)
摘要:一个串被定义为序列的调用事件句柄(非并行调用),使用串允许在多线程环境中执行代码而不使用显示的互斥锁。串可以是隐式的或者显式的,如下方的可替代方法所示:仅在一个线程中调用io_service::run()意味着使用隐式的串执行所有的事件句柄,因为io_service确保了句柄只被run()内部调用。 阅读全文
posted @ 2016-03-12 23:18 Leo.Z 阅读(383) 评论(0) 推荐(1)
摘要:线程安全一般的,高并发使用不同的对象是安全的,在高并发中使用单一的对象是不安全的,io_service类型提供了单对象高并发的强安全保证。线程池多线程可能调用io_service::run()来建立一个可以调用完成句柄的线程池,也可以使用io_service::post()把计算任务交给线程池处理。 阅读全文
posted @ 2016-03-12 21:21 Leo.Z 阅读(1158) 评论(0) 推荐(1)
摘要:Boost::Asio为同步和异步操作提供了并行支持,异步支持基于前摄器模式,这种模式的优点和缺点可能比只同步或反应器方法要低。让我们检查一下Boost::Asio是如何实现前摄器模式的,没有引用基于平台的细节。前摄器设计模式,改编自POSA2--异步操作 定义一个异步执行的操作,比如socket的 阅读全文
posted @ 2016-03-12 12:38 Leo.Z 阅读(1029) 评论(0) 推荐(1)
摘要:Boost::Asio可以在socket等I/O对象上执行同步或异步操作,使用Boost::Asio前很有必要了解Boost::Asio、你的程序以及它们交互的过程。作为一个引导的例子,我们思考一个当一个socket执行连接操作时发生了什么,我们首先开始一个同步的例子你的程序需要一个io_servi 阅读全文
posted @ 2016-03-11 23:19 Leo.Z 阅读(1200) 评论(0) 推荐(2)