码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 集群聊天项目


    不懂的一些东西

    (const TcpConnectionPtr&)作为形参啥意思:接收一个常量引用,函数内部不允许修改该指针所指向的对象。

    客户端与服务器如何联系?

    优势

    1.网络层与业务层分离:通过网络层传来的id,设计一个map存储id以及对印的业务处理器,处理器bind绑定处理函数,直接分离根据id调用业务即可

    2.这里传入的是user对象而不是sql语句,很方便4b6386f0ce7347cda0a3b08a6fec583c.png

    概述

    网络层---业务层---数据层

    mudou库和libevent二选一

    流程:客户端输入,整理成json发送给服务器,服务器运用了moduo网络库,客户端send触发muduo,服务器初始化了绑定器,根据客户端发来的信息决定用哪些回调函数。(这里特色是public.hpp,即让客户端输入msgid=1,服务器触发)

    14df50f9088b413db6226c9ede228d83.png

    57b308c8320045aeb2bf205e5d1ff68e.png

    ffb577ea91524b9ab7b18433bf2aab20.png

    JSON介绍

    174c62fd6b704ca2a305ec7aea2f3210.png

    63698c594edf4209aecc64231aa88c7a.png

    b167400e1e8f4578923e278d1698dfae.png

    2c025cbc0e444af59ab8d46a4aefeb8a.png

    muduo网络库

    cf78b66906684c74821c3e644ca4e61a.png

    回声服务器

    3e0d80f3f8924769b8cbcc600d96ca6a.png

    8d85a76a8897415db79407354f85b936.png

    a66bc95b5f7a4cb38e32e96e070e3b3d.png

    8abd5d4ddb9140f1964e36da05eb7a99.png

    a775ddc93bdf4f3aa92c6c5a7b93942e.png

    客户端实现

    9ffad64c7c224674aeebbdfe64be0efa.png

    9a38a0781e7049ea85a72bd901395c74.png

    muduo中的线程池做计算任务

    e0992f5f81434bfd84fe4aed237a5726.png

    moduo网络库的多线程模型

    网络服务器模型

    bae3f6ba12174942ac30bf6fe6fcbb8b.png

    47218bcdd3a64903b8d951def785db9b.png

    moduo中的reactor模型

    26cda6d4649f4df294d6317e3ffcc05b.png

    b891ba87d6694883bb22d54fd3c0a5a4.png

    cmake

    项目数据库以及表的设计

    48781abdec5148cd80abe4d325414845.png

    c4577c43d6bd4719b45dca84af647ccb.png

    8e841250c9c544659296c7b0ede696fb.png

    集群项目聊天工程目录创建

    aa28edb736db40debe1ea92abdbbf800.png

    22288d83833e4379ad9e8ec2ac737b8c.png

    8cf5123f714e4ab8b7b9bc2861c5c7dc.png

    b06763a7c8b1455f9313293d9ec94405.png

    网络模块代码

    0ef2b7233c184e528ffde6d5e7734f3c.png

    f5283c52a47945b4aa58a86ff3911272.png

  • 相关阅读:
    Winsoft Office Component Suite
    ELK日志收集系统
    Mysql命令行常用基本操作
    08: value too great for base (error token is “08“)
    Ts内置类型---下
    力扣爆刷第147天之贪心算法五连刷(跳跃、发糖果、加油站)
    动态代理之Cjlib的动态代理简单理解
    WAS项目更新单个文件
    如何写出一份优秀的软件设计文档
    【RuoYi-Vue-Plus】学习笔记 39 - Redisson(十一)分布式锁 lock4j 集成分析(源码 + Lua 脚本)
  • 原文地址:https://blog.csdn.net/2304_80073016/article/details/136105274
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号