• 客户端技术的一点思考(数据存储用SQLite, XMPP通讯用Gloox, Web交互用LibCurl, 数据打包用Protocol Buffer, socket通讯用boost asio)

    时间:2022-07-07 18:06:54

    今天看到CSDN上这么一篇《 彻底放弃没落的MFC,对新人的忠告!》,作为一个一直在Windows上搞客户端开发的C++程序员,几年前也有过类似的隐忧(参见 落伍的感觉),现在却有一些不同的想法。 首先,个人职业发展是否成功,技术只是其中一小块,尤其是在大公司,更多的是依靠所谓的软实力。作为一个对技...

  • Linux下,Boost.Asio是如何通过epoll做到IO异步的

    时间:2022-07-02 05:55:01

    背景:epoll的实现是基于回调的,如果fd有期望的事件发生就通过回调函数将其加入epoll就绪队列中,用户针对该队列中的文件句柄发起相应操作,如read等,此时数据真正才会开始从内核buffer写入应用buffer中,整个过程是一种同步IO。而Boost.Asio采用Proactor模式实现了异步...

  • boost.asio异步模式没有并发执行

    时间:2022-07-02 05:54:55

    //同时启动三个客户端进程时,发现服务端并没有并发执行,大家帮忙看看是什么原因//服务端代码 server_asynchronize.h#ifndef SERVER_ASYNCHRONIZE_H#define SERVER_ASYNCHRONIZE_H#include <ctime>#i...

  • (原创)拨开迷雾见月明-剖析asio中的proactor模式(一)

    时间:2022-07-02 05:54:43

    使用asio之前要先对它的设计思想有所了解,了解设计思想将有助于我们理解和应用asio。asio是基于proactor模式的,asio的proactor模式隐藏于大量的细节当中,要找到它的踪迹,往往有种只见树木不见森林之感,笔者将剖析asio中的proactor模式,一步一步揭开它的面纱,最终拨开云...

  • boost.asio的跨平台实现

    时间:2022-07-02 05:54:49

    前几天写了篇日志<<关于boost.asio的一点备忘>>,主要是基于其在linux平台下的实现写的,今天还是一篇备忘,根据boost.asio在win与非win下的实现来谈谈它的跨平台设计与实现.boost.asio根据系统平台提供的事件多路分发机制来实现proactor模...

  • boost.asio是搞笑来的?

    时间:2022-07-02 05:54:37

    不说了,官方example\echo\async_tcp_echo_server.cpp开2个客户端用telnet方式连上echo_server,长时间后关掉telnet后,echo_server竟然不会断开客户端?而且在echo_server的机器上用netstat -ano -p tcp查看,服...

  • Boost.Asio网络库之io_service分析

    时间:2022-07-02 05:54:31

    io_service概述几乎绝大多数用到Boost.Asio的代码里都会出现这样一个类:io_service。它应该算是Asio库里的核心类了,其本质是一个任务队列,但又不仅仅是个任务队列。基本结构io_service是个接口类(ps:这里解释一下,这里说接口类并不是指类似java的interfac...

  • boost.asio 学习笔记05——asio的windows实现

    时间:2022-07-02 05:54:43

    http://blog.163.com/henan_lujun/blog/static/1953833320134145378226/boost.asio学习笔记05——asio的windows实现  Operation还记得前面我们在分析resolver的实现的时候,挖了一个关于operation...

  • redhat enterprise 5 下的boost::asio 库应用(0)

    时间:2022-06-21 22:48:52

    最近几次业内交流,我认识了自己。一直以来,都在windows下开发网络服务器,从单pc负载1k-2k-4k,网络性能也逐步提高。但是周边的朋友,大多是在linux下开发,我就显得比较扎眼。第一个差异就是服务端的os环境,另外就是MMORPG的逻辑处理。其实单就os不同,确实不能衡量比较服务器的质量,...

  • 为什么提振。Asio不支持基于事件的接口吗?

    时间:2022-06-19 00:26:55

    IamattemptingtounderstandBoost.Asio,withtheintentionofpotentiallyimplementingasignalingsystemusingconditionvariablesinconjunctionwithBoost.Asio.我正在尝试理...

  • boost asio学习笔记1--Reactor与Proactor模式

    时间:2022-06-10 05:08:23

    boostasio(异步输入输出)为什么会想学习asio,起初是想了解c++的网络编程,接着去深入的了解有没有什么实用的网络库,现在网上比较流行的就是ACE,libevent和boost.asio。开始的时候去了解一下ACE,但是明显感觉这是一个重量级的网络通信库,其中有较多的设计模式。相比较而言,...

  • boost.asio源码剖析(五)

    时间:2022-06-10 05:08:35

       有人说C++是带类的C;有人说C++是面向对象编程语言;有人说C++是面向过程与面向对象结合的语言。类似的评论网上有很多,虽然正确,却片面,是断章取义之言。    C++是实践的产物,C++并没有为了成为某某类型的语言而设计,而是一切以工程实践为目的,一切以提升语言能力为目的。    1983...

  • ASIO 之 剖 析--(3)  以Proactor模式的角度来剖析ASIO

    时间:2022-06-10 05:08:47

    从上面对于Proactor的分析可知,首先用户以Initiator角色发起一个读写事件。Initiator则通过stream_socket_service来进行相关IO操作。故而,顺着着这条主线,下面我们就进入stream_socket_service的内部来一探究竟。在stream_socket_...

  • Boost::Asio入门剖析

    时间:2022-06-10 05:08:41

    Boost::Asio可以在socket等I/O对象上执行同步或异步操作,使用Boost::Asio前很有必要了解Boost::Asio、你的程序以及它们交互的过程。作为一个引导的例子,我们思考一个当一个socket执行连接操作时发生了什么,我们首先开始一个同步的例子你的程序需要一个io_servi...

  • boost.asio源码剖析(二)

    时间:2022-06-10 05:08:29

    *架构浅析 先来看一下asio的0层的组件图。                   (图1.0)    io_object是I/O对象的集合,其中包含大家所熟悉的socket、deadline_timer等对象,主要功能是提供接口给用户使用。   services服务是逻辑功能的实现者,其中包含提供...

  • 剖析asio中的proactor模式(二)

    时间:2022-06-01 16:21:07

    http://www.cnblogs.com/qicosmos/p/3841026.html在上一篇博文中我们提到异步请求是从上层开始,一层一层转发到最下面的服务层的对象win_iocp_socket_service,由它将请求转发到操作系统(调用windowsapi),操作系统处理完异步请求之后又...

  • 为何 Boost 的 Asio 要使用 Proactor 模式实现?

    时间:2022-05-26 18:21:28

    转自:https://www.zhihu.com/question/22064431Linux下高性能的网络库中大多使用的Reactor模式去实现,BoostAsio在Linux下用epoll和select去模拟proactor模式,影响了它的效率和实现复杂度,看陈硕的自己的Linux下Reacto...

  • (原创)拨开迷雾见月明-剖析asio中的proactor模式(二)

    时间:2022-05-26 18:21:04

    在上一篇博文中我们提到异步请求是从上层开始,一层一层转发到最下面的服务层的对象win_iocp_socket_service,由它将请求转发到操作系统(调用windowsapi),操作系统处理完异步请求之后又是如何返回给应用程序的呢,这里是通过iocp(完成端口)来实现的。让我们先来简要的看看ioc...

  • 使用Boost.Asio写的多线程TCP转发代理服务器

    时间:2022-04-24 07:59:22

    应用场景是这样的:客户端和服务器在不同的网段内,它们之间不能直接通过TCP连接,但是有一台机器(暂时称为转发器)有双网卡,两块网卡分别在客户端和服务器端的网段内,这样转发器就能分别和客户端即服务器建立连接,并来回传输数据。设计思路是这样的:当客户端连接到转发器后,转发器马上建立一条到服务器之间的连接...

  • ASIO 之 剖 析--(3)  以Proactor模式的角度来剖析ASIO

    时间:2022-04-19 18:25:06

    从上面对于Proactor的分析可知,首先用户以Initiator角色发起一个读写事件。Initiator则通过stream_socket_service来进行相关IO操作。故而,顺着着这条主线,下面我们就进入stream_socket_service的内部来一探究竟。在stream_socket_...