DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2017年8月29日

摘要: io_service类 你应该已经发现大部分使用Boost.Asio编写的代码都会使用几个io_service的实例。io_service是这个库里面最重要的类;它负责和操作系统打交道,等待所有异步操作的结束,然后为每一个异步操作调用其完成处理程序。如果你选择用同步的方式来创建你的应用,你则不需要考 阅读全文
posted @ 2017-08-29 17:54 DoubleLi 阅读(431) 评论(0) 推荐(0)

摘要: IO模型 io_service对象是asio框架中的调度器,所有异步io事件都是通过它来分发处理的(io对象的构造函数中都需要传入一个io_service对象)。 asio::io_service io_service; asio::ip::tcp::socket socket(io_service 阅读全文
posted @ 2017-08-29 17:51 DoubleLi 阅读(422) 评论(0) 推荐(0)

摘要: 一、io_service的作用 io_servie 实现了一个任务队列,这里的任务就是void(void)的函数。Io_servie最常用的两个接口是post和run,post向任务队列中投递任务,run是执行队列中的任务,直到全部执行完毕,并且run可以被N个线程调用。Io_service是完全线 阅读全文
posted @ 2017-08-29 17:47 DoubleLi 阅读(456) 评论(0) 推荐(0)

摘要: 无论如何使用,都能感觉到使用boost.asio实现服务器,不仅是一件非常轻松的事,而且代码很漂亮,逻辑也相当清晰,这点上很不同于ACE。使用io_service作为处理工作的work pool,可以看到,就是通过io_service.post投递一个Handler到io_service的队列,Ha 阅读全文
posted @ 2017-08-29 17:39 DoubleLi 阅读(590) 评论(0) 推荐(0)

摘要: io_service::work类可以使io_service::run函数在没有任务的时候仍然不返回,直至work对象被销毁。 [cpp] view plain copy print? void test_asio_nowork() { boost::asio::io_service ios; PR 阅读全文
posted @ 2017-08-29 17:21 DoubleLi 阅读(881) 评论(0) 推荐(0)

摘要: 1. 用解释器的方法, 常用来解析域名, 如 // query("www.163.com","80"), 也可以 query("www.163.com","telnet") // echo 7/tcp// ftp 21/tcp # File Transfer Protocol (Control)// 阅读全文
posted @ 2017-08-29 17:16 DoubleLi 阅读(447) 评论(0) 推荐(0)

摘要: 当有任务的时候,run函数会一直阻塞;但当没有任务了,run函数会返回,所有异步操作终止。 客户端程序中,如果我想连接断开后重连,由于连接断开了,run会返回,当再次重连的时候,由于run返回了,即使连接成功了,也不会调用aysnc_connect绑定的回调函数。 解决方法: 1,在再次重连的时候, 阅读全文
posted @ 2017-08-29 17:12 DoubleLi 阅读(1062) 评论(0) 推荐(0)

摘要: [cpp] view plain copy print? [cpp] view plain copy print? test_strand的执行结果: [cpp] view plain copy print? 2013-01-05 17:25:34 626 [8228] DEBUG - id: 4 阅读全文
posted @ 2017-08-29 16:58 DoubleLi 阅读(1199) 评论(0) 推荐(0)