buffer几种用法
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几种用法相关推荐
- Android Intent的几种用法全面总结
Android Intent的几种用法全面总结 Intent, 用法 Intent应该算是Android中特有的东西.你可以在Intent中指定程序要执行的动作(比如:view,edit,dial), ...
- mysql中模糊查询的四种用法介绍
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user ...
- javamap的用法_Java Map常用的几种用法。
Java Map常用的几种用法. 通常,Map是由一组键值对组成的数据结构,每个键只能在映射中出现一次.这篇文章总结了有关如何使用Java Map及其实现的类的前9个常见问题解答.为了简单起见,我将在 ...
- using 的三种用法
using 有哪三种用法? 1)引入命名空间. 2)给命名空间或者类型起别名. 3)划定作用域.自动释放资源,使用该方法的类型必须实现了 System.IDisposable接口,当对象脱离作用域之后 ...
- C++ operator两种用法【转】
C++中的operator,有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换).下面分别进行介绍: 1.operator ...
- java和python可以在一个项目中同时使用么-java调用python的几种用法(看这篇就够了)...
java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...
- static的三种用法,定义静态变量,静态函数,静态代码块!
static的三种用法,定义静态变量,静态函数,静态代码块! 1.定义静态变量 class PersonStatic { //静态变量的特点 //1.静态变量无需生成对象就可被调用,可以使用类名和对象 ...
- Vue——基本的代码结构和插值表达式、v-cloak||Vue指令之v-text和v-html||v-bind的三种用法||Vue指令之v-on
Vue的基本代码 <!DOCTYPE html> <html lang="en"><head><meta charset="UT ...
- js中继承的几种用法总结(apply,call,prototype)
本篇文章主要介绍了js中继承的几种用法总结(apply,call,prototype) 需要的朋友可以过来参考下,希望对大家有所帮助 一,js中对象继承 js中有三种继承方式 1.js原型(proto ...
最新文章
- 如何查看一个linux用户的口令保留策略
- 分享jQuery对象和Javascript对象之间的转换代码
- Behavior Trees
- ajax中return不生效
- iOS 简简单单构造单例
- 前端页面:一直报Cannot set property 'height' of undefined
- 题目——求一个二进制串中连续的1或连续的0出现的最大次数
- 错误:'BasicLSTMCell' object has no attribute '_kernel'
- [PAT B1023]组个最小数
- php网页顶部菜单代码,5款个性的网页回到顶部特效代码
- tm影像辐射定标_遥感图像辐射定标
- CAD中的dxf文件解析(一):准备工作
- 设备管理器中的usb打印支持有个叹号是什么意思,如何解决?
- Google账户二次验证取消
- Python逐行读取tsv文件
- VB6.0 读取Excel2010简单方法(附源码和注释,可伸手)
- JVM中如何排查CPU飙高的问题
- CLO如何在其软件结构中集成V-RAY
- 黑科技揭秘:面对海量的文本翻译任务,阿里翻译团队是如何解决的 1
- 快速读懂Depth-wise Convolution
热门文章
- 硅谷华人AI精英大批回国成趋势,BAT在美设「挖人」据点,猎头暗中潜伏
- Weather API 天气应用 API调用分享
- mac下使用python3_mac 下使用python3运行ride
- 猎聘和BOSS直聘谁会成为在线招聘的最后赢家?
- 利用scrapy+splash+redis实现对JS动态生成网页的增量爬取
- android edittext背景颜色,Android 设置 EditText 背景颜色、背景图片
- IEduChina2019国际学校展暨国际教育论坛温暖深圳
- OEM,ODM,OBM,JDM概念
- 浙江海發進出口股份有限公司官网上线|LTD五金技术行业案例分享
- UE5回合制游戏【2-摄像机控制】(蓝图版)