自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 DMSXL刷题(13)验证二叉搜索树 | 二叉搜索树的最小绝对差

【代码】DMSXL刷题(13)验证二叉搜索树 | 二叉搜索树的最小绝对差。

2023-09-03 17:36:33 59

原创 DMSXL刷题(12)最大二叉树 | 合并二叉树 | 二叉搜索树中的搜索

【代码】DMSXL刷题(12)最大二叉树 | 合并二叉树 | 二叉搜索树中的搜索。

2023-09-03 16:51:38 51

原创 DMSXL刷题(11)找树左下角的值 | 路径总和

【代码】DMSXL刷题(11)找树左下角的值 | 路径总和。

2023-08-17 14:12:49 53

原创 DMSXL 刷题(10)平衡二叉树 | 二叉树的所有路径 | 左叶子的和

【代码】DMSXL 刷题(10)平衡二叉树 | 二叉树的所有路径 | 左叶子的和。

2023-08-16 16:42:15 46

原创 DMSXL刷题(9)二叉树的最大深度 | 二叉树的最小深度 | 完全二叉树的节点个数

【代码】DMSXL刷题(9)二叉树的最大深度 | 二叉树的最小深度 | 完全二叉树的节点个数。

2023-08-15 15:51:08 36

原创 DMSXL刷题(8)二差树的层序遍历|翻转二叉树|对称二叉树

(即逐层地,从左到右访问所有节点)。

2023-08-13 15:54:46 46 1

原创 DMSXL刷题(7)前k个高频元素|中序遍历二叉树|迭代法前序遍历二叉树|二叉树中序遍历迭代

给定一个非空的整数数组,返回其中出现频率前 k 高的元素。

2023-08-12 15:00:37 44 1

原创 DMSXL刷题(6)1047 150 239

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。在完成所有重复项删除操作后返回最终的字符串。在 S 上反复执行重复项删除操作,直到无法继续删除。滑动窗口的位置 最大值。返回一个表示表达式值的整数。

2023-08-11 10:53:31 53 1

原创 DMSXL刷题(5)459 232 225 20

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(给定一个非空的字符串 ,检查是否可以通过由它的一个子串重复多次构成。请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(,判断字符串是否有效。

2023-08-10 11:00:26 43 1

原创 DMSXL刷题(4)541 05 58

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。比如,输入字符串“abcdefg”和数字2,该函数将返回左旋转两位得到的结果“cdefgab”。给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。请实现一个函数,把字符串 s 中的每个空格替换成"%20"。输入: s = "abcdefg", k = 2。输出: "bacdfeg"

2023-08-10 08:56:49 43 1

原创 DMSXL 刷题(3)454 383 15

【代码】DMSXL 刷题(3)454 383 15。

2023-08-08 14:34:15 32

原创 使用套接字进行读写:

连接建立的根本目的是为了数据的收发。拿我们常用的网购场景举例子,我们在浏览商品或 者购买货品的时候,并不会察觉到网络连接的存在,但是我们可以真切感觉到数据在客户端 和服务器端有效的传送, 比如浏览商品时商品信息的不断刷新,购买货品时显示购买成功 的消息等。

2023-08-08 10:59:09 36

原创 TCP三次握手:怎么使用套接字格式建立连接?

分别从服务端和客户端的角度,讲述了如何创建套接字,并利用套接字完成 TCP 连接的建立。服务器端通过创建 socket,bind,listen 完成初始化,通过 accept 完成连接的建立。客户端通过创建 socket,connect 发起连接建立请求。

2023-08-07 15:23:06 82

原创 DMSXL 刷题(2)242 349 202 1

【代码】DMSXL 刷题(2)242 349 202 1。

2023-08-07 15:08:58 37

原创 套接字和地址

在网络编程中,到底应该怎么理解 socket 呢?我在这里先呈上这么一张图,你可以先看看。先从右边服务端看,因为在客户端发起连接请求之前,服务器端必须初始化好。1.首先初始化socket2.服务器端需要执行bind函数,将自己的服务能力绑定在一个众所周知的端口上3.服务器端执行listen操作,将原先的socket 转化为服务端的 socket4.服务端最后阻塞在 accept上 等待客户端请求的到来。客户端过程:1.同样先初始化socket。

2023-08-06 14:57:27 47

原创 网络编程实战(

学好网络编程,需要达到以下三个层次:第一个层次,充分理解 TCP/IP 网络模型和协议。在这方面,仅仅做到理论上的理解是远远不够的。在基础篇中我们会梳理 TCP/IP 模型和网络函数接口之间的联系,并通过实例展开对套接字,套接字缓冲区,拥塞控制,数据包和数据流,本地套接字(UNIX 域套接字)等的讨论,给你一个全面而具体的知识体系。第二个层次,结合对协议的理解,增强对各种异常情况的优雅处理能力。

2023-08-06 13:48:44 42

原创 DMSXL刷题(1)24 19 02.07 142

【代码】DMSXL刷题(1)24 19 02.07 142。

2023-08-06 11:37:23 33

原创 C++实现集群聊天服务器(7)

在服务器集群的环境当中,我们引入负载均衡器帮我们统一接受客户端的请求,根据配置的负载算法来把客户端请求分发到业务服务器上。用户使用客户端时候不用选择去链接哪台服务器,客户端默认链接的都是负载均衡器。负载均衡器的角色就是一个中间的桥梁,连接客户端和服务器之间的通信。客户端的请求与服务端的响应都是要经过负载均衡器的。2.能够和ChatServer保持心跳机制,监测ChatServer故障。时刻监测业务服务器是否在线,负载均衡器的职责就是把客户端的请求分发给服务器。

2023-08-05 13:29:40 204 1

原创 C++实现集群聊天服务器(6)

/ 记录当前系统登录的用户信息// 记录当前登录用户的好友列表信息// 记录当前登录用户的群组列表信息// 显示当前登录成功用户的基本信息// 控制主菜单页面程序// 接收线程// 获取系统时间(聊天信息需要添加时间信息)// 主聊天页面程序。

2023-08-03 12:50:19 102

原创 C++实现集群聊天服务器(5)

返回好友列表时 从Friend表里只能拿到friend id,我们还要拿着friend id再user表里的具体信息,因为我们最起码给用户返回好友列表时,需要返回账号 名字 状态。业务的开发,业务层需要开发业务逻辑代码,数据层需要建Model类,对表的增删改查进行封装,使数据库的操作代码不会和业务代码耦合到一起。包含了4个成员变量,组的id 组的name,组的描述与一个vector(到时候会获取一个组内所有的成员,从数据库查询处理后将所有成员放入vector中,供业务层使用)添加头文件 与数据操作类对象。

2023-08-01 11:35:35 140 1

原创 C++实现集群聊天服务器(4)

用户1给用户2发送消息 from:1 to:2 mag:xxx 这时服务器要主动给2推送消息。2又不知道什么时候别人和他说话,它不可能去服务器上边拉消息,所以这个聊天肯定是服务器推给我们另外一方的。所以这就是为什么聊天服务器必须需要设置长连接服务器,因为不仅仅只能是客户端请求,服务器被动接受,服务器也要主动推消息到客户端的。所以拿到用户的ID:2,你怎么知道2这个用户的链接connection在哪里,所以我们在业务层要想办法存储下,一个用户一个connection。

2023-07-31 13:12:45 271 1

原创 C++实现集群聊天服务器(3)

注意:业务层代码千万不要直接写数据库,相当于把网络模块代码和业务模块代码通过事件回调完全拆分开,现在来到业务层我们也是相当希望把数据层和业务层代码逻辑区分开,不要让俩者代码掺杂在一起。将来数据存储模块不想在MySql上存储了,全部存放在Redis上那么业务模块代码需要大量改动,所有我们一般ORM框架 object realtion map 对象关系映射,帮我们解决了业务层操作的都是对象,我们看不到任何sql语句。数据层才是有数据库操作。

2023-07-30 13:30:31 109 1

原创 C++实现集群聊天服务器(2)

bin:生成的可执行文件lib:生成的中间库文件include:头文件src:源文件build:编译过程中产生的临时中间文件test:测试文件thirdparty:依赖的第三方库autobuild.sh:Linux的Shell脚本 一键编译。

2023-07-29 14:30:20 207

原创 C++实现集群聊天服务器(1)

muduo库代码这就写完了,使用TcpServer很快的建立了一个性能相当不错的基于事件驱动的I/O复用epoll的+线程池的这种模型网络服务器。

2023-07-29 11:33:10 168

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除