客户端技术的一点思考(数据存储用SQLite, XMPP通讯用Gloox, Web交互用LibCurl, 数据打包用Protocol Buffer, socket通讯用boost asio)
今天看到CSDN上这么一篇《 彻底放弃没落的MFC,对新人的忠告!》,作为一个一直在Windows上搞客户端开发的C++程序员,几年前也有过类似的隐忧(参见 落伍的感觉),现在却有一些不同的想法。 首先,个人职业发展是否成功,技术只是其中一小块,尤其是在大公司,更多的是依靠所谓的软实力。作为一个对技...
c++中用boost实现共享内存创建map容器
#include<boost/interprocess/managed_shared_memory.hpp>#include<boost/interprocess/allocators/allocator.hpp>#include<boost/interprocess/...
boost::xml——基本操作以及中文乱码解决方案 (续)
本博文主要想说明以下两点:1.对于上一篇的《boost::xml——基本操作以及中文乱码解决方案》解释,这篇博文基本解决了正确输入输出中英文问题,但是好像还没有解决修改中文出现乱码的问题。可以参看这段代码boolread_xmlW(conststd::string&xml,boost::pr...
Linux下,Boost.Asio是如何通过epoll做到IO异步的
背景:epoll的实现是基于回调的,如果fd有期望的事件发生就通过回调函数将其加入epoll就绪队列中,用户针对该队列中的文件句柄发起相应操作,如read等,此时数据真正才会开始从内核buffer写入应用buffer中,整个过程是一种同步IO。而Boost.Asio采用Proactor模式实现了异步...
boost.asio异步模式没有并发执行
//同时启动三个客户端进程时,发现服务端并没有并发执行,大家帮忙看看是什么原因//服务端代码 server_asynchronize.h#ifndef SERVER_ASYNCHRONIZE_H#define SERVER_ASYNCHRONIZE_H#include <ctime>#i...
boost.asio的跨平台实现
前几天写了篇日志<<关于boost.asio的一点备忘>>,主要是基于其在linux平台下的实现写的,今天还是一篇备忘,根据boost.asio在win与非win下的实现来谈谈它的跨平台设计与实现.boost.asio根据系统平台提供的事件多路分发机制来实现proactor模...
boost.asio是搞笑来的?
不说了,官方example\echo\async_tcp_echo_server.cpp开2个客户端用telnet方式连上echo_server,长时间后关掉telnet后,echo_server竟然不会断开客户端?而且在echo_server的机器上用netstat -ano -p tcp查看,服...
Boost.Asio网络库之io_service分析
io_service概述几乎绝大多数用到Boost.Asio的代码里都会出现这样一个类:io_service。它应该算是Asio库里的核心类了,其本质是一个任务队列,但又不仅仅是个任务队列。基本结构io_service是个接口类(ps:这里解释一下,这里说接口类并不是指类似java的interfac...
boost.asio 学习笔记05——asio的windows实现
http://blog.163.com/henan_lujun/blog/static/1953833320134145378226/boost.asio学习笔记05——asio的windows实现 Operation还记得前面我们在分析resolver的实现的时候,挖了一个关于operation...
boost::property_tree读取解析.xml文件
boost::property_tree读取解析.xml文件1)read_xml支持中文路径 boost::property_tree::wptreewpt; std::locale::global(std::locale("")); boost::property_tree::xml_pa...
windows下boost库的基本用法
由于boost都是使用模板的技术,所以全部代码都是写在一个.hpp头文件里。这样boost中的大部分内容是不须要编译生成对应的链接库,仅仅须要设置以下的包括文件夹(或者设置一下环境变量),在源文件里包括对应的头文件就能够使用了。少部分库须要生成链接库来使用。以下介绍完整安装boost库的方法:1、首...
redhat enterprise 5 下的boost::asio 库应用(0)
最近几次业内交流,我认识了自己。一直以来,都在windows下开发网络服务器,从单pc负载1k-2k-4k,网络性能也逐步提高。但是周边的朋友,大多是在linux下开发,我就显得比较扎眼。第一个差异就是服务端的os环境,另外就是MMORPG的逻辑处理。其实单就os不同,确实不能衡量比较服务器的质量,...
Boost解析xml——xml写入
<?xmlversion="1.0"encoding="utf-8"?><Config><Itemname="IP测试报告2017-10-2409-54-31"><ChildItemname="Date"desc=""datatype="string">...
Boost预报——通用几何库(GGL)
用共享内存作为匿名内存池只要分配共享内存段的一部分作为缓存区,把信息复制进去,再把缓存区在共享内存中的偏移值发送给另外的进程,任务就完成啦!让我们看一个例子:#include<boost/interprocess/managed_shared_memory.hpp>#include<...
boost 编译,windows平台
下载Boost及生成bjam.exe文件到Google网站搜索下载boost_1.52版本库,下载完成后,,解压到X:下,这个地址自己随便定义。在解压的文件中搜索build.bat文件,把它所在的目录记下,进入Dos环境下利用CD命令进入build.bat文件目录下,输入命令:“buildmingw...
boost asio学习笔记1--Reactor与Proactor模式
boostasio(异步输入输出)为什么会想学习asio,起初是想了解c++的网络编程,接着去深入的了解有没有什么实用的网络库,现在网上比较流行的就是ACE,libevent和boost.asio。开始的时候去了解一下ACE,但是明显感觉这是一个重量级的网络通信库,其中有较多的设计模式。相比较而言,...
boost.asio源码剖析(五)
有人说C++是带类的C;有人说C++是面向对象编程语言;有人说C++是面向过程与面向对象结合的语言。类似的评论网上有很多,虽然正确,却片面,是断章取义之言。 C++是实践的产物,C++并没有为了成为某某类型的语言而设计,而是一切以工程实践为目的,一切以提升语言能力为目的。 1983...
Boost::Asio入门剖析
Boost::Asio可以在socket等I/O对象上执行同步或异步操作,使用Boost::Asio前很有必要了解Boost::Asio、你的程序以及它们交互的过程。作为一个引导的例子,我们思考一个当一个socket执行连接操作时发生了什么,我们首先开始一个同步的例子你的程序需要一个io_servi...
boost.asio源码剖析(二)
*架构浅析 先来看一下asio的0层的组件图。 (图1.0) io_object是I/O对象的集合,其中包含大家所熟悉的socket、deadline_timer等对象,主要功能是提供接口给用户使用。 services服务是逻辑功能的实现者,其中包含提供...
为什么boost::future::then()生成一个新线程?
Whenattachingacontinuationtoboost::future,thecontinuationisexecutedinanewthread:当附加一个continuationtoboost::future时,延续将在一个新线程中执行:std::cout<<"main:...