Boost Asio error_code 的错误值的含义

Boost Asio error_code 的错误值的含义,第1张

boost::system::error_code 的值,用GDB调试的时候,打印出来只是一个类对象,里面有2个数字成员,看不到确切的蔽森帆意思。 可以使用"print error.message()",就能看宏雹到英文的意思了。

在文件boost/system/error_code.hpp中,有定义枚举类型errc_t。也可春含以参考asio的文档 https://en.cppreference.com/w/cpp/error/errc

这里选了一写常见的网络类错误码。

简介

Boost.Asio是一个跨平台的C++库,主要用于网络和其他一些底层的I/O编程。

在大量的网络编程库中,Boost.Asio是其中的佼佼者,它于2005年加入到乱丛卜Boost,已经被广泛的测试并郑伏且应用在多个项目中,如:

Remobo (http://www.remobo.com),用于创建瞬时专用网络(IPN)

libtorrent (http://www.rasterbar.com/products/libtorrent), 用于实现BT的客户端

开源 *** 游戏PokerTH (http://www. pokerth.net)

Boost.Asio成功的抽象了包括网络,串口、文件在内的同步和异步的I/O *** 作:

read(stream, buffer [, extra options])

async_read(stream, buffer [, extra options], handler)

write(stream, buffer [, extra options])

async_write(stream, buffer [, extra options], handler)

Boost.Asio支持大多数 *** 作系统,轻量可扩展的,目前网络部分支持TCP, UDP, IMCP,可以很方便的扩展自定义协议。

历史

Boost.Asio于2003年开始开发,2005年12月加入到Boost 1.35,原始作者Christopher M. Kohlhoff。

支持的平台和编译器如下:

• 32位和64位Windows, Visual C++ 7.1及以上

• Windows, MinGW

• Windows , Cygwin (必须定义宏#define USE_232_SOCKETS)

• 基于2.4和2.6核心的Linux , g++ 3.3 及以上

• Solaris, g++ 3.3 及以上

• MAC OS X 10.4+, g++ 3.3 及以上

在其他平台也应该能正常工作,如:

AIX 5.3, HP-UX 11i v3, QNX Neutrino 6.3, Solaris using Sun Studio 11+, True64 v5.1, Windows using Borland C++ 5.9.2+ (consult at www.boost.org for more details).

依赖关系

Boost.Asio 依赖如下库:

• Boost.System: 必选,提供了 *** 作系统底层函数的支持

• Boost.Regex: 可选如果你使用了带boost::regex参数的read_until() 和 async_read_until()

• Boost.DateTime: 可选,如果你使用了定时器

• OpenSSL: 可选,如果需要SSL的支持

编译

Boost.Asio 是只有头文件的库,无需编译直接使用,但是你也可以编译成静态或哗穗者动态库, 减少程序的编译时间。

• 包含头文件 #include <boost/asio/impl/src.hpp>(如果使用SSL, 也要包含 #include <boost/asio/ssl/impl/src.hpp>), 而不是包含 <boost/asio.hpp>

• 在程序的源文件里定义宏 #define BOOST_ASIO_SEPARATE_COMPILATION

由于Boost.Asio 依赖Boost.System和Boost.Regex, 所以编译如下:

bjam –with-system –with-regex stage

如果你运行完整的测试,执行Asio自带的样例,建议编译如下:

bjam –with-system –with-thread –with-date_time –with-regex –with- serialization stage

注意如果定义了BOOST_ASIO_DISABLE_THREADS宏, 不论boost是否支持线程,asio将会不支持线程,

typedef boost::asio::ip::tcp::acceptor AcceptorTypetypedef boost::asio::ip::tcp TcpTypeAcceptorType m_acceptorTcpType::endpoint endpoint(TcpType::v4(), m_port)m_acceptor.open(endpoint.protocol())//丛虚悄 这里会阻渗渣誉野塞!!! m_...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12253456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存