Boost Asio总结概述
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Boost Asio总结概述相关的知识,希望对你有一定的参考价值。
1. 框架
1.1. IO Objects层
class | context |
---|---|
tcp | ip::tcp是asio主要用于TCP协议的类,内部类型endpoint、socket、acceptor和resolver是TCP通信最核心的一组类,封装了socket的连接、断开和数据收发等功能 |
address | ip::address表示IP地址,独立于TCP、UDP等通信协议,可以同时支持ipv4和ipv6,其静态成员from_string()是一个工工厂函数,可以从字符串产生ip地址,地址版本可以用is_v4()和is_v6()来检测,to_string()可以把ip地址转换为字符串 |
endpoint | ip::tcp::endpoint用来表示端口号,通过构造函数创建一个可用于Socket通信的端点对象,端点的地址和端口号可以用address()和port()获得 |
socket | TCP通信的基本类,可以在构造时就指定使用的协议和endpoint,或调用成员函数connect();连接成功后可以使用local_endpoint()和remote_endpoint()获得两端点信息;用available()获取可读取的字节数;用receive()/read_some()和send()/write_some()读写数据,参数是buffer类型,用buffer()函数进行包装;当操作完成后使用close()关闭socket |
acceptor | 构造时传入endpoint开始侦听,调用accept()接受新的连接 |
resolver | ip::tcp::resolver通过域名获得可用的IP地址,可以实现与IP版本无关的网址解析 |
1.2. Basic Template Classes层
1.3. services层
asio::io_service类提供核心的I/O操作函数,可以看作事件循环,socket、timer都需要它。提供了任务队列和任务分发功能,在异步编程中显式调用了io_service.run(),程序中的异步操作会添加至任务队列,由run()循环执行直到全部执行完毕。io_service是完全线程安全的队列。以上类大都需要io_service作为构造参数。
以上是关于Boost Asio总结概述的主要内容,如果未能解决你的问题,请参考以下文章