• muduo 学习


    设计目标

    muduo的设计目标是专用的数独服务器或者游戏服务器,不是用来写通用的httpd或者ftpd或Web proxy。前者通常有业务逻辑,后者更强调高并发和高吞吐量。

    原理

    muduo支持并发非阻塞TCP网络编程,它的核心是每个IO线程一个事件循环(loop),把IO事件分发到回调函数上。

    基于事件的非阻塞网络编程
    1. 接收数据(receive):注册一个收数据的回调,网络库收到数据时调用回调函数,将收到的数据提供给我。
    2. 接受连接(accept)
    3. 发送数据(send)
    TCP网络编程最本质的是处理三个半事件
    1. 连接建立。onConnection()
    2. 连接断开:主动断开(close--关闭套接字, shutdown--关闭连接)和被动断开(read返回0)。
    3. 消息到达,文件描述符可读。onMessage() 处理收到的数据
    4. 消息发送完毕(指数据写入操作系统的缓冲区,等待TCP协议栈完成数据的发送与重传) onWriteComplete()
    应用层发送缓冲区
    应用层接收缓冲区

    长连接TCP服务,分包

    1. 消息长度固定
    2. 特殊字符作为消息边界
    3. 消息头部加长度字段
    4. 根据消息本身格式分包(JSON、XML配对)
    -------------------------------------------------------------逆水行舟,不进则退。
  • 相关阅读:
    sql server 获取本月的始末时间
    超时时间已到
    sql server定时自动备份
    创建连接服务器
    date制作电子时钟
    C#继承(三)
    C# Split分割
    Dom动态添加属性
    date制作电子时钟(二)
    全局遮罩 shade
  • 原文地址:https://www.cnblogs.com/alilliam/p/13739134.html
Copyright © 2020-2023  润新知