boost::asio 网络传输错误码的一些实验结果(recv error_code)
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)相关推荐
- boost::asio译文
boost::asio译文 Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布( ...
- Boost.Asio技术文档汇总
Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENSE_1_ ...
- boost::asio中文文档
Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENSE_1_ ...
- Boost.Asio技术文档
文章来源:http://blog.csdn.net/henreash/article/details/7469707 Boost.Asio是一个跨平台的网络及底层IO的C++编程库,它使用现代C++手 ...
- Boost.Asio 技术文档
Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENSE_1_ ...
- boost::asio
#ifdef _MSC_VER #define _WIN32_WINNT 0X0501 #endif #define BOOST_REGEX_NO_LIB #define BOOST_DATE_TIM ...
- boost::asio使用UDP协议通信源码实现
说明:以下源码来自参考文献[1], 比原文更丰富, 更有指导意义, 方便日后参考. udp servr端源码 //g++ -g udp_server.cpp -o udp_server -lboost ...
- boost::asio异步模式的C/S客户端源码实现
异步模式的服务器源码 //g++ -g async_tcp_server.cpp -o async_tcp_server -lboost_system //#include <iostream& ...
- boost::asio中的C/S同步实例源码
近来狂热地研究boost的开发技术,现将读书笔记整理如下: 需要说明的是, 本博该专题下面关于boost的源码是采用boost1.55版本, 运行在Ubuntu 14.04 64bit下面, 使用ap ...
- [Boost基础]并发编程——asio网络库——定时器deadline_timer
asio库基于操作系统提供的异步机制,采用前摄器设计模式(Proactor)实现了可移植的异步(或者同步)IO操作,而且并不要求使用多线程和锁定,有些的避免了多线程编程带来的诸多有害副作用(如条件竞争 ...
最新文章
- RIP协议的问题解决方案
- yum -y --downloadonly --downloaddir=/ruiy upggrde;
- Java眼中的XML--文件读取--2 应用SAX方式解析XML
- Build 2016,你可能忽视的几个细节
- CMake 手册详解(二十二)
- 自动化调参NNI学习(三):使用python启动NNI框架调整随机森林(RandomForest)模型
- mongodb聚合查询-aggregate
- 超越Tiny-YOLO V4,全新设计轻量化YOLO模型实现边缘实时检测!!!
- window.innerHeight和document.documentElement.clientHeight区别
- VC++ (MFC)调用 C#生成DLL的两种方法
- 孔浩javacript基础笔记一
- 微信公众号发送模版消息 Java实现
- Python实现日周月排行榜
- 力扣刷题 DAY_69 回溯
- 【教学类-30-02】10以内加法题不重复(一页两份)(包括6以内、7以内、8以内、9以内、10以内加法题 只抽取25个)
- AI产品经理入门手册(上)
- App自动化元素查看工具
- 信息化技术在农业上的应用
- 测序故事:从框架图到染色体水平组装(一)
- 单机启动schedule报错:Get http://127.0.0.1:10251/healthz: dial tcp 127.0.0.1:10251: connect: connection ref