Boost.Asio 0.37简介(翻译自Boost.Asio 0.37的文档的首页)_zuroc的博客-程序员秘密

技术标签: C#  C++  C  网络应用  编程  网络协议  

Boost.Asio 0.37简介(翻译自Boost.Asio 0.37的文档的首页)
原文:http://asio.sourceforge.net/boost_asio_0_3_7/libs/asio/doc/

翻译:张沈鹏 http://blog.csdn.net/zuroc or http://www.cppblog.com/zuroc

Boost.Asio是利用当代C++的先进方法,跨平台,异步I/O模型的C++网络库.

入门

这个教程介绍了客户端-服务器端的一些基本概念,同时给出了一个示例的小程序.

小程序可以启示Boost.Asio在复杂程序中的应用.

附注

Boost.Asio的大部分功能没有必要编译Boost中的其他库,仅仅需要它们的头文件.然而read_until和async_read_until的重载需要Boost.Regex库(注意:MSVC 或 Borland C++的用户需要在用户设置中加入-DBOOST_ALL_NO_LIB来防止与Boost.Date_Time和Boost.Regex的自动链接)

需要OpenSSL才可以启用SSL支持,但Asio的其他部分不需要它.

已经测试的平台和编译器:

* Win32 using Visual C++ 7.1 and Visual C++ 8.0.
* Win32 using Borland C++Builder 6 patch 4.
* Win32 using MinGW.
* Win32 using Cygwin. (__USE_W32_SOCKETS must be defined.)
* Linux (2.4 or 2.6 kernels) using g++ 3.3 or later.
* Solaris using g++ 3.3 or later.
* Mac OS X 10.4 using g++ 3.3 or later.
* QNX Neutrino 6.3 using g++ 3.3 or later.

原理:

Boost.Asio可以让程序员用C++的程序体系取代那种需要使用system底层操作的网络编程.特别的值得注意的是,Boost.Asio试图解决一下一些问题.

*可移植性.
库可以支持并提供一系列常用操作系统的一致行为.

*可测量性:
库允许并鼓励开发者在网络编程中检测成百或成千并发的连接数.库在各个平台的实现要用这种机制来最优的实现这种可测量性.

*效率:
库要支持 分散-聚合I/O(scatter-gather I/O) 之类的技术,允许协议的 最小量(minimise) 的数据交换.

*伯克利(Berkeley) sockets模型:
该模型的API被广泛的采用和理解,被许多文献介绍.其他程序语言通常使用类似网络API的接口.

*易用:
降低新手使用该工具的入门障碍,胜于框架和模式.也就是说,试图最简化前端的学习,仅仅需要理解一些基本规则和指导方针.此外,库的用户仅需要理解使用到的特定函数.

*可以作为进一步抽象的基础:
库应该允许其他库的开发者进行更高层的抽象,比如:实现常用的协议Http.

尽管当前的Boost.Asio的实现主要关注的是网络,但异步I/O可以被扩展到其他系统资源,比如 文件.

 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zuroc/article/details/83100591

智能推荐

基于 Linux 离线部署 RabbitMQ_rabbitmq linux 离线部署集群_迷途码界的博客-程序员秘密

基于 Linux 离线部署 RabbitMQ离线 RPM 安装包下载RPM 包安装启动 RabbitMQ 服务启动服务:配置管理账户设置管理员权限启动 web 管理启动 stomp 通道重启 RabbitMQ 服务离线 RPM 安装包下载erlang rpm包,下载地址。socat rpm包,下载地址。RabbitMQ rpm包,下载地址。RPM 包安装将安装包上传至 Linux 服务器指定的自定义文件夹内。执行下列安装命令:sudo rpm -ivh erlang-22.3-1.el7

【2017/MLG】graph2vec: Learning Distributed Representations of Graphs_梦家的博客-程序员秘密

原文链接:https://dreamhomes.github.io/posts/202101181459.html文章链接:https://arxiv.org/pdf/1707.05005.pdf源码链接:https://github.com/MLDroid/graph2vec_tfTL;DR目前图表示学习方法主要是学习图中节点或者子图的隐含向量,但现实中很多任务例如图分类或者聚类都需要将整个图编码成固定长度的向量;此外,以前基于图核的方法由于使用自定义特征因此通用性较差。本文中提出的一种无.

解决json返回到客户端中文出现乱码显示问号的问题_rest请求返回的json串为问号_kk123k的博客-程序员秘密

原创作品。转载请注明出处https://blog.csdn.net/kk123kSpringMVC用ajax向服务器端获取数据时返回的json到客户端时中文会出现乱码显示“???”,其中,我的controller如下@[email protected](value = "getCourse")通过查阅源码发现Spring的@ResponseBody 的实现类默认的编码是 is...

Vue学习篇1_用户权限控制_登录的用户从后端获取角色信息role,前端动态展示侧边导航栏、不同资源_vue3前端路由根据role登录_scl、的博客-程序员秘密

一、写在前面关于前端的权限控制,常见的体现用处:不同的用户左边展示的菜单栏不太一样下面具体的展示的实现二、具体实现1.新建store/permission.js文件,配合router.js来实现功能大致原理:根据登录用户的role来 在 原来 静态路由constantRouters 的基础上 将待添加路由 addRouters 拼接上// store/permission.js// 0. 导入router.js下的静态路由、动态获取的路由映射import { asyncRoute

thinkcmf5.0.180901 远程代码执行漏洞分析_呆马神迹的博客-程序员秘密

最近thinkcmf爆出了一个后台登录后的远程代码执行漏洞,非常好奇看了下决定写一个分析过程分析下如何执行代码的。如何搭建环境就不多介绍了,大家可以phpstudy或者xampp,thinkcmf的源代码可以直接从github或者码云上下载。历史版本自己找下下面开始我的分析。首先先执行下漏洞,安装好后admin身份直接登陆,在后台-设置-url美化-添加url规则,设置内容 原始网址 por...

thingsboard通过mqtt设备连接及数据交互_mqttbox连接thingsboard_bujingyun8的博客-程序员秘密

目录mqtt连接上报遥测数据上报设备属性从服务端下行修改设备属性命令下发mqtt连接thingsboard默认只验证username,密码为空,clientid不限,mqtt.fx如下,username输入设备令牌ACCESS_TOKEN上报遥测数据设备publish到topic:v1/devices/me/telemetry,设备属性支持json格式,如:{"temperature":26},在设备详情页最新遥测页面可以实时看到最后上报的设备遥测数据上报..

随便推点

OSG中的示例程序简介_MissXy_的博客-程序员秘密

OSG中的示例程序简介1.example_osganimate一)演示了路径动画的使用 (AnimationPath、AnimationPathCallback),路径动画回调可以作用在Camera、CameraView、 MatrixTransform、PositionAttitudeTransform等四种类型的节点上。二)演示了osgS

tp5无法隐藏index.php入口文件_fjnjxr的博客-程序员秘密

在本地phpstudy环境,根据官方文档https://www.kancloud.cn/manual/thinkphp5/177576进行URL重写,隐藏index.php不好用,百度方案,发现将.htaccess文件进行如下修改。官方文件:Options +FollowSymlinks -MultiviewsRewriteEngine onRewriteCond %{REQU

教师节感言_huangyunhui185的博客-程序员秘密

<br />深情地感慨   坚定地守望<br />(沅江职业中专  黄云辉)<br /> <br />尊敬的各位领导,亲爱的同仁们,朋友们:<br />我叫黄云辉,是来自沅江市职业中专的一名普通老师。我是在安化出生长大的。我的这一生中,有两个选择值得永远骄傲:一是我无怨无悔地选择了人民教师这一神圣职业,因为这一选择,我的人生有了清晰的方向,我的爱,变得纯洁和高尚;二是我选择了在美丽的洞庭湖畔的沅江工作,因为这一选择,我的心灵时常被清爽的湖风滋润,我结识了最敬业、最体贴、最友善的同事和朋友,我认识了最纯朴、最

PTA L2-028 秀恩爱分得快_smiling~的博客-程序员秘密

古人云:秀恩爱,分得快。互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度。如果一张照片上出现了 K 个人,这些人两两间的亲密度就被定义为 1/K。任意两个人如果同时出现在若干张照片里,他们之间的亲密度就是所有这些同框照片对应的亲密度之和。下面给定一批照片,请你分析一对给定的情侣,看看他们分别有没有亲密度更高的异性朋友?输入格式:输入在第一行给出 2 个正整...

直击5G的机遇与挑战,全新商业模式、规模化经济效益、最新技术进展…全解读..._人工智能学家的博客-程序员秘密

来源:TechRepublic、物联网智库编译摘要:报告指出,5G将改善用户体验,带来新的应用以及新的商业模式,产生显著的经济效益,但同时,5G的发展也面临着许多不可避免...

推荐文章

热门文章

相关标签