zoukankan      html  css  js  c++  java
  • io_service work 的作用

    当有任务的时候,run函数会一直阻塞;但当没有任务了,run函数会返回,所有异步操作终止。

        客户端程序中,如果我想连接断开后重连,由于连接断开了,run会返回,当再次重连的时候,由于run返回了,即使连接成功了,也不会调用aysnc_connect绑定的回调函数。

     解决方法:

    1,在再次重连的时候,要重新调用run函数,在调用的前一定要调用io_service::reset。以便io_service::run重用。

         boost::asio::io_service io_service_;

       io_service_.reset();

       io_service_.run();

    2,用boost::asio::io_service::work。

         boost::asio::io_service io_service_;

         boost::asio::io_service::work work(io_service_); 

         io_service_.run();

      这样即使没有任务,run也不会返回了。

  • 相关阅读:
    FreeNAS的安装使用记录
    slackware中配置命令行下的分辨率
    创建类的理由
    软件开发人员的入门级书单
    Pow(x, n)
    Group Anagrams
    Rotate Image
    Permutations
    Multiply Strings
    Combination Sum II
  • 原文地址:https://www.cnblogs.com/lidabo/p/7449263.html
Copyright © 2011-2022 走看看