boost asio学习资料

 

Boost.Asio的使用技巧 (中文 总结的非常好)

http://blog.jqian.net/post/boost-asio.html?spm=a2c4e.11153940.blogcont243127.9.d8fc2f941Abbd7#toc_0

 

boost.Asio的使用实践总结(英文 强烈推荐):

https://www.gamedev.net/blogs/entry/2249317-a-guide-to-getting-started-with-boostasio/

 

Boost.Asio函数库手册中文版

http://zh.highscore.de/cpp/boost/?spm=a2c4e.11153940.blogcont243127.33.d8fc2f941Abbd7

 

Boost.Asio官方example学习:

https://www.boost.org/doc/libs/1_75_0/doc/html/boost_asio/examples/cpp11_examples.html

1. Allocation  

异步调用时asio会分配一块内存来拷贝和保存handler,一般的socket程序都会有很多次异步过程,例如循环调用async_read/write,这将导致频繁的分配和释放保存handler的内存,从而降低效率。为了避免这种情况的发生,可以自定义这个分配过程,让asio内部代码在分配并拷贝handler时使用这些内存。 

https://www.cnblogs.com/my_life/articles/5401767.html

https://www.cnblogs.com/walker-lc/articles/3573743.html

2. Buffers

异步调用的时候,比如调用boost::asio::async_write的时候,函数立即返回,而真正的写入后面才发生,这就要求所发送的数据不要被立即销毁,而是等到写入完成后才销毁。

对比一下这个连接里面没有使用自定义buffer的例子https://www.boost.org/doc/libs/1_75_0/doc/html/boost_asio/tutorial/tutdaytime3/src.html, 可以看到在class tcp_connection中有一个成员变量std::string message_,用来存储要发送的消息。

而在使用Buffer的例子中,因为使用了自定义的shared_const_buffer类,在 class session中就不需要再定义个存储消息的成员变量了。

https://blog.csdn.net/mo4776/article/details/90143397

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值