boost::asio网络传输错误码的一些实验结果(recv error_code )

错误码很重要,可以由此判断网络连接到底发生了神马事情,从而驱动高层逻辑的行为。只有笼统的错误码判断的网络层是不够规范的,鄙人觉得有些错误码还是需要在网络层就区分开的,特此记录一些当前实验的错误码以及发生原因。

以下是一部分在async_receive()的handler处捕获到的比较有用的错误码

错误码(十进制) 枚举 发现原因
10009 boost::asio::error::bad_descriptor 在一个已经关闭了的套接字上执行async_receive()
995 boost::asio::error::operation_aborted 正在async_receive()异步任务等待时,本端关闭套接字
10054 boost::asio::error::connection_reset 正在async_receive()异步任务等待时,远端的TCP协议层发送RESET终止链接,暴力关闭套接字。常常发生于远端进程强制关闭时,操作系统释放套接字资源。
2 boost::asio::error::eof 正在async_receive()异步任务等待时,远端关闭套接字,这里跟10054发生的情况似乎一样,但是实际上应该是有区别的,具体神马区别,由回复中jack的说法,这个是远端正常关闭套接字。

只是一些浅陋的测试,目前觉得有用的也就是这几个,不正确的地方请送我鸡蛋。


补充:
boost::asio::error::eof会在对方调用close()时产生。
boost::asio::error::connection_reset会在对方直接关闭进程产生。
boost::asio::error::operation_aborted会在自己调用cance()l时产生。

boost::asio 网络传输错误码的一些实验结果(recv error_code)相关推荐

  1. boost::asio译文

    boost::asio译文 Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布( ...

  2. Boost.Asio技术文档汇总

    Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENSE_1_ ...

  3. boost::asio中文文档

    Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENSE_1_ ...

  4. Boost.Asio技术文档

    文章来源:http://blog.csdn.net/henreash/article/details/7469707 Boost.Asio是一个跨平台的网络及底层IO的C++编程库,它使用现代C++手 ...

  5. Boost.Asio 技术文档

    Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENSE_1_ ...

  6. boost::asio

    #ifdef _MSC_VER #define _WIN32_WINNT 0X0501 #endif #define BOOST_REGEX_NO_LIB #define BOOST_DATE_TIM ...

  7. boost::asio使用UDP协议通信源码实现

    说明:以下源码来自参考文献[1], 比原文更丰富, 更有指导意义, 方便日后参考. udp servr端源码 //g++ -g udp_server.cpp -o udp_server -lboost ...

  8. boost::asio异步模式的C/S客户端源码实现

    异步模式的服务器源码 //g++ -g async_tcp_server.cpp -o async_tcp_server -lboost_system //#include <iostream& ...

  9. boost::asio中的C/S同步实例源码

    近来狂热地研究boost的开发技术,现将读书笔记整理如下: 需要说明的是, 本博该专题下面关于boost的源码是采用boost1.55版本, 运行在Ubuntu 14.04 64bit下面, 使用ap ...

  10. [Boost基础]并发编程——asio网络库——定时器deadline_timer

    asio库基于操作系统提供的异步机制,采用前摄器设计模式(Proactor)实现了可移植的异步(或者同步)IO操作,而且并不要求使用多线程和锁定,有些的避免了多线程编程带来的诸多有害副作用(如条件竞争 ...

最新文章

  1. RIP协议的问题解决方案
  2. yum -y --downloadonly --downloaddir=/ruiy upggrde;
  3. Java眼中的XML--文件读取--2 应用SAX方式解析XML
  4. Build 2016,你可能忽视的几个细节
  5. CMake 手册详解(二十二)
  6. 自动化调参NNI学习(三):使用python启动NNI框架调整随机森林(RandomForest)模型
  7. mongodb聚合查询-aggregate
  8. 超越Tiny-YOLO V4,全新设计轻量化YOLO模型实现边缘实时检测!!!
  9. window.innerHeight和document.documentElement.clientHeight区别
  10. VC++ (MFC)调用 C#生成DLL的两种方法
  11. 孔浩javacript基础笔记一
  12. 微信公众号发送模版消息 Java实现
  13. Python实现日周月排行榜
  14. 力扣刷题 DAY_69 回溯
  15. 【教学类-30-02】10以内加法题不重复(一页两份)(包括6以内、7以内、8以内、9以内、10以内加法题 只抽取25个)
  16. AI产品经理入门手册(上)
  17. App自动化元素查看工具
  18. 信息化技术在农业上的应用
  19. 测序故事:从框架图到染色体水平组装(一)
  20. 单机启动schedule报错:Get http://127.0.0.1:10251/healthz: dial tcp 127.0.0.1:10251: connect: connection ref

热门文章

  1. Zabbix监控介绍配置zabbix架构
  2. 一看就懂的设计模式--设计模式分类
  3. Oracle 导出DMP
  4. 暑假计划(7月23日-8月21日)
  5. 老李分享:单元测试的 5 个错误
  6. 初探facebook的iOS/Mac OS X动画框架pop
  7. :将照片处理成绘画风格
  8. 1.SOA架构:服务和微服务分析及设计--- 理解面向服务
  9. 4.Jenkins 2 权威指南 --- 通知与报告
  10. 10.Linux 高性能服务器编程 --- 信号