HOME> 在线世界杯> 如何学习和使用asio 网络库

如何学习和使用asio 网络库

2025-06-19 21:54:31

asio是一个建立在Boost所提供的相关组件之上的异步的网络库,可以运行在Win/Linux/Unix等各种平台之上。不过随着C++11的发布,其对于Boost的依赖也越来越少,作者又做了一个不依赖于boost的版本。

虽然网络上关于C++网络编程的框架和库的轮子多的一比,但没有一个比这个更通用,比这个更实用。 有些只能在linux上运行,比如muduo,有的依赖库非常多,比如360的evpp,有的只偏重于某一方面,不通用,比如不支持ssl。好用的大概只有asio这一个了。可惜关于asio的学习资料并不是特别多,给学习带来了一些不便。而且asio这些年开发比较快,有些东西也在一直变化。

不过好在还是有一些资料可以借鉴,基本接口也比较稳定。

下面我介绍一下学习的一些路径和资料。

asio下载地址:

Asio C++ Library

文档:

Documentation

一、基本类学习

首先要了解内部io_context的使用,多线程与io_context如何配合。

run(), poll(), post()具体是什么意义。

worker如何使用

c++11 的bind是怎么工作的,只需要了解具体如何用,不用了解底层实现。

二、socket类如何读写

同步与异步函数的使用。

acceptor.accept()

acceptor.async_accept()

sock_.connect()

sock_.async_connect()

三、基本的例子

src/examples目录下, cpp11目录下比较多,基本上几个一看就明白一般的server和client的逻辑

四、真实程序

例子看过后就看看真正的用asio写的程序

1.用asio写的

GitHub - trojan-gfw/trojan: An unidentifiable mechanism that helps you bypass GFW.

用到ssl里面的许多功能。

推荐图书

图书1

Boost.Asio C++ Network Programming Cookbook

https://github.com/Belgorodsky/BoostAsioCppNetworkProgrammingCookbookDmitroRadchuk

pdf链接Boost.AsioC++NetworkProgrammingCookbook2016新书无水印pdf0分_boost-C++文档类资源-CSDN下载

图书2

讲解asio中的基本类的使用

asio 网络编程第二版英文原版pdf,这个文档做的比较好,标签比较全。

boostasioc++networkprogramming2nd-C++文档类资源-CSDN下载

利用IDM下载QQ群文件
世界杯三四名决赛最新战报:比利时2