Boost库网络编程和异步IO(一)
boost::asio概要
boost::aiso主要用于跨平台网络开发,封装了底层常用的网络操作和同步、异步IO操作,可以很快速的设计开发出高并发网络服务程序。boost::asio使用主要基于两个概念:
IO服务
boost::asio::io_service:封装了系统接口,具体实现上每个io_service都一个公有任务队列和多个私有任务队列,公有队列由各个线程共享,私有队列则是每个线程独享一个。
IO对象
boost中IO对象包括网络、缓存操作等类型,常用的IO对象有:
- boost::asio::ip::tcp::socket
- boost::asio::ip::tcp::endpoint
- boost::asio::ip::tcp::resolver
- boost::asio::ip::tcp::acceptor
- boost::asio::deadline_timer 定时器
IO对象需要使用io_service作为构造函数第一个参数,列如处理网络连接时常用以下接口:
#include <boost/system/error_code.hpp> #include <boost/aiso.hpp> // 所需头文件引入 boost::system::error_code ec; // 对象所依赖的服务定义: boost::asio::io_service m_ioService; m_ioService.run(); // acceptor 接收器,监听连接请求 boost::asio::ip::tcp::acceptor m_oAccepto