char d1[128];
size_t bytes_transferred = sock.receive(boost::asio::buffer(d1));
buffer 大小是自动管理的
同样std::vector<char> d2(128);
bytes_transferred = sock.receive(boost::asio::buffer(d2));
还可以基于boost::array
boost::array<char, 128> d3;
bytes_transferred = sock.receive(boost::asio::buffer(d3)); 
buffe 还支持在string 上直接构造
string str = " hello world " ;
bytes_transferred = sock.send(boost::asio::buffer(str)); 
上面是 由基本类型转化成buffe ,同样buffer 也可以转化成 指针形式
如下:
boost::asio::mutable_buffer b1 =boost::asio::buffer(str);
unsigned char* p1 = boost::asio::buffer_cast<unsigned char*>(b1);
如下方法获得buffer的大小
std::size_t s1 = boost::asio::buffer_size(b1);
注意的是boost :: asio::const_buffer是只读的buff
顾名思义了boost::asio::mutable_buffer则可写
读写buffer也是有讲究的 
boost::array<char, 128> buf;
boost::system::error_code ec;
std::size_t n = boost::asio::read(
sock, boost::asio::buffer(buf),
boost::asio::transfer_all(), ec);
if (ec)
{// An error occurred.
}
else
{// n == 128
}

boo

st::asio::transfer_all()能够使buffer中的所有数据都传送完毕。即读满buffer为止。

相对的:std::size_t n = boost::asio::read(    sock, boost::asio::buffer(buf),

 boost::asio::transfer_at_least(64), ec);

意义即读满64字节为止。返回。



本文转自:http://blog.chinaunix.net/u3/102778/showart_2019368.html
												

buffer几种用法相关推荐

  1. Android Intent的几种用法全面总结

    Android Intent的几种用法全面总结 Intent, 用法 Intent应该算是Android中特有的东西.你可以在Intent中指定程序要执行的动作(比如:view,edit,dial), ...

  2. mysql中模糊查询的四种用法介绍

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示.  比如 SELECT * FROM [user ...

  3. javamap的用法_Java Map常用的几种用法。

    Java Map常用的几种用法. 通常,Map是由一组键值对组成的数据结构,每个键只能在映射中出现一次.这篇文章总结了有关如何使用Java Map及其实现的类的前9个常见问题解答.为了简单起见,我将在 ...

  4. using 的三种用法

    using 有哪三种用法? 1)引入命名空间. 2)给命名空间或者类型起别名. 3)划定作用域.自动释放资源,使用该方法的类型必须实现了 System.IDisposable接口,当对象脱离作用域之后 ...

  5. C++ operator两种用法【转】

    C++中的operator,有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换).下面分别进行介绍: 1.operator ...

  6. java和python可以在一个项目中同时使用么-java调用python的几种用法(看这篇就够了)...

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...

  7. static的三种用法,定义静态变量,静态函数,静态代码块!

    static的三种用法,定义静态变量,静态函数,静态代码块! 1.定义静态变量 class PersonStatic { //静态变量的特点 //1.静态变量无需生成对象就可被调用,可以使用类名和对象 ...

  8. Vue——基本的代码结构和插值表达式、v-cloak||Vue指令之v-text和v-html||v-bind的三种用法||Vue指令之v-on

    Vue的基本代码 <!DOCTYPE html> <html lang="en"><head><meta charset="UT ...

  9. js中继承的几种用法总结(apply,call,prototype)

    本篇文章主要介绍了js中继承的几种用法总结(apply,call,prototype) 需要的朋友可以过来参考下,希望对大家有所帮助 一,js中对象继承 js中有三种继承方式 1.js原型(proto ...

最新文章

  1. 如何查看一个linux用户的口令保留策略
  2. 分享jQuery对象和Javascript对象之间的转换代码
  3. Behavior Trees
  4. ajax中return不生效
  5. iOS 简简单单构造单例
  6. 前端页面:一直报Cannot set property 'height' of undefined
  7. 题目——求一个二进制串中连续的1或连续的0出现的最大次数
  8. 错误:'BasicLSTMCell' object has no attribute '_kernel'
  9. [PAT B1023]组个最小数
  10. php网页顶部菜单代码,5款个性的网页回到顶部特效代码
  11. tm影像辐射定标_遥感图像辐射定标
  12. CAD中的dxf文件解析(一):准备工作
  13. 设备管理器中的usb打印支持有个叹号是什么意思,如何解决?
  14. Google账户二次验证取消
  15. Python逐行读取tsv文件
  16. VB6.0 读取Excel2010简单方法(附源码和注释,可伸手)
  17. JVM中如何排查CPU飙高的问题
  18. CLO如何在其软件结构中集成V-RAY
  19. 黑科技揭秘:面对海量的文本翻译任务,阿里翻译团队是如何解决的 1
  20. 快速读懂Depth-wise Convolution

热门文章

  1. 硅谷华人AI精英大批回国成趋势,BAT在美设「挖人」据点,猎头暗中潜伏
  2. Weather API 天气应用 API调用分享
  3. mac下使用python3_mac 下使用python3运行ride
  4. 猎聘和BOSS直聘谁会成为在线招聘的最后赢家?
  5. 利用scrapy+splash+redis实现对JS动态生成网页的增量爬取
  6. android edittext背景颜色,Android 设置 EditText 背景颜色、背景图片
  7. IEduChina2019国际学校展暨国际教育论坛温暖深圳
  8. OEM,ODM,OBM,JDM概念
  9. 浙江海發進出口股份有限公司官网上线|LTD五金技术行业案例分享
  10. UE5回合制游戏【2-摄像机控制】(蓝图版)