青山相待

            白云相爱

            梦不到紫罗袍共黄金带

            一茅斋

            野花开

            管甚谁家兴废谁成败

            陋巷单瓢亦乐哉

            贫,气不改!

            达,志不改!

摘要: 许多异步操作需要申请一个对象来保存操作状态,比如,win32需要OVERLAPPED导出的对象来传递给win32  API函数。此外,程序通常包括简单的可辨明的异步操作链,一个半双工协议(比如HTTP)为每一个client保存一个异步操作链(发送以后就是接收),一个全双工的协议可能拥有两个并行执行的 阅读全文
posted @ 2016-03-13 23:34 Leo.Z 阅读(431) 评论(0) 推荐(1) 编辑
摘要: 许多广泛应用的网络协议是基于行的,这意味着许多协议元素通过"\r\n"来分割,比如HTTP、SMPT、FTP,为了更方便的实现基于行的协议,和其他基于分隔符的协议一样,Boost::Asio包括了read_until() 和async_read_until()。下面的例子阐述了async_read_ 阅读全文
posted @ 2016-03-13 16:00 Leo.Z 阅读(204) 评论(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 阅读(191) 评论(0) 推荐(1) 编辑
摘要: Boost::Asio中的许多I/O对象是流导向的,这意味着; @没有消息边界,在传输的数据是一个连续的字节序列 @读或者写传输的字节可能比请求更小,这就是被称作简短的读或者写 提供流定向模型的对象一个或者多个下列类型的必要条件:SyncReadStream,使用成员函数read_some()执行同 阅读全文
posted @ 2016-03-13 15:39 Leo.Z 阅读(215) 评论(0) 推荐(1) 编辑
摘要: 从根本上讲,I/O包含了数据从源到目的地的连续内存的传输,这叫做缓存,这些缓存可以简单的描述为包含了一个指针和一组字节数据的元组,然而,为了支持高效网络应用程序的开发,Boost::Asio支持分散-聚合操作,这些操作同时支持一个或多个缓存。分散读 接收数据并写入多重缓存中。分散写 传输数据给多个缓 阅读全文
posted @ 2016-03-13 15:17 Leo.Z 阅读(236) 评论(0) 推荐(1) 编辑