日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Boost】boost库asio详解6——boost::asio::error的用法浅析

發布時間:2024/4/11 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Boost】boost库asio详解6——boost::asio::error的用法浅析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 概述

一般而言我們創建用于接收error的類型大多聲明如下:
[cpp]?view plain?copy ?print?
  • boost::system::error_code?error??
  • 我們用這個類型去接受在函數中產生的錯誤, 如:?
    [cpp]?view plain?copy ?print?
  • socket.connect(endpoint,?error);??
  • 如果連接失敗,錯誤類型會保存到error中,比如連接主機失敗可能會返回這樣的錯誤
    [cpp]?view plain?copy ?print?
  • boost::asio::error::host_not_found;??
  • 通過if(error)檢測到error后,拋出異常
    [cpp]?view plain?copy ?print?
  • throw?boost::system::system_error(error);??
  • 需要注意的是,我們的error被轉化成 system_error了
    顯示錯誤很簡單了,std::cout << e.what()

    2. 異步調用

    產生的異常error的傳遞是個問題,因為異步會立刻返回,局部變量是會被銷毀的。而boost::asio::placeholders::error, 將會保存異常的狀態,這樣我們使用異步調用時如
    socket::async_write_some的時候不用自己創建boost::system::error_code error了,直接使用boost::asio::placeholders::error作為參數即可,
    同理,我們sync_write_some需要返回讀寫數據的大小,令人開心的是boost::asio::placeholders::bytes_transferred直接作為參數就可以保存數據大小。
    實例如下:
    [cpp]?view plain?copy ?print?
  • boost::asio::async_write(socket_,??
  • ?????????????????????????boost::asio::buffer(message_),??
  • ?????????????????????????boost::bind(&tcp_connection::handle_write,?shared_from_this(),??
  • ?????????????????????????boost::asio::placeholders::error,??
  • ?????????????????????????boost::asio::placeholders::bytes_transferred));??
  • 參考手冊上說的很明確,下面兩個類就是為異步調用使用bind的時候設計的。
    [cpp]?view plain?copy ?print?
  • boost::asio::placeholders::error??
  • boost::asio::placeholders::bytes_transferred??
  • 3. 同步調用

    當然了boost::system::error_code error還用有用的,同步調用的時候我們就用它作為參數。如:
    [cpp]?view plain?copy ?print?
  • boost::system::error_code?error;??
  • size_t?len?=?socket.read_some(boost::asio::buffer(buf),?error);??
  • 同樣在異步調用的回調handle中也用它作參數如
    [cpp]?view plain?copy ?print?
  • void?handle_write(const?boost::system::error_code&?/*error*/,??
  • ??????????????????size_t?/*bytes_transferred*/)??
  • {??
  • }??
  • 4. 總結

    異步就用 boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred
    同步就用 boost::system::error_code

    總結

    以上是生活随笔為你收集整理的【Boost】boost库asio详解6——boost::asio::error的用法浅析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 久久色在线 | 少妇2做爰hd韩国电影 | 福利视频一区二区三区 | 久久影业 | 91免费.| 日本性高潮视频 | 中文字幕一区电影 | 国产精品欧美一区二区三区 | 激情小说av | 美女诱惑av| 久热免费视频 | 国产成人精品一区二区色戒 | 337p日本欧洲亚洲鲁鲁 | 欧美老熟妇一区二区 | 精品国产精品 | 欧美黄视频 | 日韩成人av毛片 | 中文字幕精品一区二区精 | 91av精品 | 九色91popny蝌蚪新疆 | 亚洲天堂8 | 亚洲天堂美女视频 | 99成人国产精品视频 | 激情av综合| 一眉道姑 | 91一区二区三区在线 | 极品尤物一区二区三区 | 亚洲成人网在线观看 | 视频国产精品 | 色偷偷欧美 | 天天干夜夜艹 | 一级黄色特级片 | 六月激情网 | 久久加勒比 | 五月激情在线观看 | 色综合天天综合综合国产 | 午夜黄色福利视频 | 亚洲天堂网络 | 国产伦精品一区二区三区视频黑人 | 亚洲午夜在线视频 | 图片区偷拍区小说区 | 久久婷婷综合色丁香五月 | 日本少妇毛茸茸 | 男人舔女人下部高潮全视频 | 亚洲欧洲在线视频 | 9久9久9久女女女九九九一九 | 国产精品一区二区免费看 | av资源导航| 这里只有精品国产 | 波多野结衣一区二区三区在线观看 | 成年黄色网 | 少妇视频在线观看 | 狠狠热免费视频 | 深夜激情影院 | 无码人妻aⅴ一区二区三区69岛 | 在线射| 欧美不卡视频 | 胸网站 | 人人干人人插 | 91亚洲精品久久久蜜桃 | 欧美日韩国产在线 | 四虎精品在线 | 91国自产精品中文字幕亚洲 | 深夜福利院 | 亚洲AV无码乱码国产精品色欲 | 亚洲国产精品二区 | 成人91免费视频 | 久久久免费网站 | 国产精品毛片一区视频播 | 视频在线观看网站免费 | 亚洲视频网站在线 | 婷婷人体 | 91观看视频 | 成年人黄色av | 中文人妻熟妇乱又伦精品 | 久久成人18免费观看 | 欧美成人一区二区 | 日日操夜夜操视频 | 日韩黄色片免费看 | 夜色成人网 | 亚洲成人精品久久 | 国精品人妻无码一区二区三区喝尿 | 男女无遮挡免费视频 | 国产激情网 | 免费午夜视频在线观看 | 91福利视频免费观看 | 国产欧美日韩精品一区二区三区 | 黄色小视频免费网站 | 国产日产欧洲无码视频 | 特黄特色特刺激免费播放 | 4438亚洲最大 | 黄色成人影视 | 热久久影院| 国内av网站 | 黄色大片网站在线观看 | 国色综合 | 裸体av淫导航 | 理论av| 免费国产一区 |