自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cauchy的博客

热爱技术,热爱生活,相信幸运!

  • 博客(154)
  • 收藏
  • 关注

原创 【Go 快速入门】泛型 | 类型约束 | 泛型接口 | 通用数据结构

【Go 快速入门】泛型 | 类型约束 | 泛型接口 | 通用数据结构

2024-04-15 17:26:36 1022 1

原创 【Go 快速入门】协程 | 通道 | select 多路复用 | sync 包

【Go 快速入门】协程 | 通道 | select 多路复用 | sync 包

2024-02-27 15:38:10 1097

原创 【Docker】前后端分离项目 Vue+Gin 容器化部署 | docker-compose 部署 | 部署 nginx 通过域名访问 | 权限管理系统

项目前端使用 vue3 并且由 vite 构建,后端采用 gin 框架,搭建了一个简易的权限管理系统(rbac)。本节对该项目进行容器化部署。

2024-02-19 16:13:13 892

原创 【Go 快速入门】包及依赖管理 | Go 第三方包发布 | 接口 | 反射

【Go 快速入门】包及依赖管理 | Go 第三方包发布 | 接口 | 反射

2024-01-29 22:30:10 972

原创 【Go 快速入门】数组 | 切片 | 映射 | 函数 | 结构体 | 方法和接收者

【Go 快速入门】数组 | 切片 | 映射 | 函数 | 结构体 | 方法和接收者

2024-01-27 22:27:04 1074

原创 【Go 快速入门】基础语法 | 流程控制 | 字符串

【Go 快速入门】基础语法 | 流程控制 | 字符串

2024-01-26 20:37:03 1041

原创 【Go 快速入门】安装 Go 语言 | 开发工具 Goland | 第一个 Go 语言程序

本系列教程,目的是帮助一个有其他编程基础的 Go 语言小白快速入门 Go 语言,而非启发式学习。每篇幅保证不说废话,尽可能精炼总结,为上手后续的 Go 相关项目打下基础。

2024-01-25 19:14:29 1330

原创 C++实现定积分运算

C++实现定积分运算

2023-12-31 20:45:00 686

原创 【Skynet 入门实战练习】事件模块 | 批处理模块 | GM 指令 | 模糊搜索

本节完善了项目,实现了事件、批处理、模糊搜索模块、GM 指令模块。

2023-12-22 16:03:55 1279

原创 【Skynet 入门实战练习】分布式 ID | 雪花算法 | 缓存设计 | LRU算法 | 数据库

本章实现了雪花算法生成ID系统,自定义了项目的缓存模块,使用了 MongoDB 数据库存储游戏数据

2023-12-01 15:41:29 1420

原创 【Skynet 入门实战练习】实现网关服务 | 用户代理 | RPC 协议 | 客户端

实现 gate 网关服务,watchdog 看门狗服务,agent 代理服务,实现 RPC 协议,完成客户端和服务端通信。

2023-11-26 15:40:52 1634 1

原创 【Skynet 入门实战练习】游戏模块划分 | 基础功能模块 | timer 定时器模块 | logger 日志服务模块

实现定时器模块,日志模块,日志服务等

2023-11-23 20:59:34 1715

原创 【Skynet 入门实战练习】开发环境搭建 | 运行第一个项目 | debug console 简单使用

本系列【Skynet 入门实战练习】所有源码同步:https://gitee.com/Cauchy_AQ/skynet_practice

2023-11-21 15:01:38 857

原创 【MongoDB】集群搭建实战 | 副本集 Replica-Set | 分片集群 Shard-Cluster | 安全认证

【MongoDB】集群搭建实战 | 副本集 Replica-Set | 分片集群 Shard-Cluster | 安全认证

2023-11-05 11:45:33 1635

原创 【MongoDB】Ubuntu22.04 下安装 MongoDB | 用户权限认证 | skynet.db.mongo 模块使用

Ubuntu 22.04 安装 MongoDB、MongoDB 用户权限认证、skynet.db.mongo 模块使用

2023-09-08 16:03:52 2390

原创 【RPC 协议】序列化与反序列化 | lua-cjson | lua-protobuf

在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。RPC 是一种服务器-客户端(Client/Server)模式,经典实现是一个通过发送请求-接受回应进行信息交互的系统。

2023-09-01 14:49:34 1072

原创 【触动精灵】IDE 连接设备

蒲公英是一个广域网连接开发工具神器,此软件会在本地搭建一个虚拟局域网,实现电脑和手机在局域网内进行连接。注册默认的是免费套餐,免费版套餐排除电脑端占用一个名额外还可以连接两台设备,对于开发来说已经够用了。,可以在开发者平台的个人中心绑定触动安卓账号(绑定位置如下图)会自动赠送 VIP 授权,注意此账号与开发者平台账号不通用,需要在客户端单独注册或者在触动官网商城购买账号(购买账号无法在开发者平台绑定)。免费版本最多管理三个用户,一台电脑端,两台手机端。,供之后的触动精灵获取 root。

2023-08-30 22:09:40 724

原创 【openresty】利用 JWT 实现令牌校验 | 模拟注册登录流程 | RunnerGo 自动化测试

JWT(JSON Web Token)是一种基于 JSON 的开放标准(RFC 7519),它定义了一种简洁的、自包含的协议格式,用于在通信双方传递 json 对象,常用来实现分布式用户认证。它通常用于用户的登录鉴权,进行身份验证和信息交换。用户使用账号、密码登录,请求发送到 Authentication Server。Authentication Server 进行用户验证(查询数据库等),创建 JWT 字符串返回给客户端。客户端请求接口访问资源时,请求头携带 JWT。

2023-08-24 11:11:16 638

原创 【Mysql 连接报错】

【Client does not support authentication protocol requested by server】

2023-08-17 14:39:25 393

原创 【RedisInsight】连入Docker容器可视化redis服务

在后台运行 redis,接下来就可以通过 RedisInsight 可视化软件连接了。做完上述工作即可正常连接docker内的redis服务器了,通过。打开桌面上的快捷方式启动:RedisInsight-v2。主要填完上述前两个参数,然后就直接添加上即可。还需要注意的是:在添加服务器时填写的。重启 redis 服务,并通过。显示如上界面,即安装成功无误。端口需要放行,允许远程连接。,安装过程一路Next即可。端口映射到容器内部的。

2023-08-03 17:43:46 1255

原创 ubuntu安装cmake简易教程

由于直接用apt指令安装cmake可能会导致版本过低,所以本教程用于安装较新的稳定版cmake。如果直接按上述一键安装也可以,但是版本会偏低。原因是软件包没有同步更新官网的较新版本,所以我们需要添加镜像源。通过该指令,可以查看当前环境中的cmake软件包的版本,如果可以接受,那么不需要看本文下述安装步骤,按上述三行执行即可。

2023-07-07 13:46:39 1224

原创 【Docker】启动docker失败

【代码】【Docker】启动docker失败。

2023-06-18 09:20:48 153

原创 【Linux】timerfd——定时器

在 Linux 系统编程中,使用timerfd实现定时器功能是一种更加可靠、高效、灵活的方式。本文是对timerfd的简单使用,不涉及太过深入知识,熟练掌握几个常用 API,实现定时器功能。

2023-06-17 19:31:57 2267

原创 【Vscode 远程连接 Docker 容器】

在 VSCode 中按下 F1 键,输入 “Remote-SSH: Connect to Host…”,选择 “Add New SSH Host…,注意文件名必须保持一致!(默认装了docker)生成如下信息:(C:/用户/.ssh/config)在弹出的对话框中填写以下信息:(括号内替换)ubuntu:22.04 镜像。在主机目录下创建一个。

2023-06-16 21:50:51 3804 5

原创 【KD-Tree】基于k-d树的KNN算法实现

KD-Tree,又称(k-dimensional tree),是一种基于二叉树的数据结构。它可以用来高效地处理多维空间搜索问题,例如最近邻搜索(nearest neighbor search)和范围搜索(range search)等。

2023-05-18 08:00:00 1054 2

原创 【LuaJIT & FFI】优雅的与C交互

LuaJIT和FFI是两个非常强大的工具,它们可以帮助开发人员在Lua中实现高性能的代码。

2023-05-16 11:00:00 1356 1

原创 【C & Lua】C调用Lua | Lua调用C

Lua与C交互是一种非常常见的技术,它可以让我们在C语言中调用Lua脚本,也可以让我们在Lua脚本中调用C语言函数。这种交互方式可以使得我们在不同的编程语言之间实现混合编程,从而达到更高的灵活性和效率。Lua栈是Lua与C交互的核心数据结构,所有的数据交互都是通过Lua栈来完成的。无论是从Lua中调用C函数,还是从C中调用Lua函数,都需要使用Lua栈来传递参数和返回值。

2023-05-14 17:00:00 1250

原创 Lua面向对象设计基类

面向对象在前文已经谈过,虽然Lua是一个脚本语言,本就不是为了面向对象而设计的。但是它的元方法可以非常优美的让我们设计出类之间的继承关系,单继承、多继承等。本文就是简单的剖析一下,云风大佬早在十多年前对于Lua面向对象的设计。

2023-05-12 13:00:00 682

原创 【华中农业大学2023年十二届程序设计竞赛(同步赛)】B. 写信

递推式:f[n]=(n−1)∗(f[n−1]+f[n−2])f[n]=(n-1)*(f[n-1]+f[n-2])f[n]=(n−1)∗(f[n−1]+f[n−2])

2023-04-28 22:50:24 1013

原创 【矩阵快速幂 | 斐波那契数列 | 矩阵加速】

【代码】【矩阵快速幂 | 斐波那契数列 | 矩阵加速】

2023-04-28 22:31:45 929

原创 【模板】带权并查集

读者可能会思考:上述判断不成立只有在同属于一个集合的情况下才会去判断,那么不属于一个集合然后合并的时候会不会存在矛盾呢?那么在一个集合中,得到了每个节点和根节点的奇偶性关系,通过传递性,就可以知道该集合中的任意两个节点之间的关系了。这题还有扩展域做法,集合内属性维护的是条件,放在以后的并查集扩展域模板在做记录。以第一种举例,读者可带入【a,b】为奇,【b,c】为奇,那么【a,c】为偶。所以给定一个区间【a,b】的奇偶性,实际上可以。的个数的奇偶性,找出第一个不符合的答案的回答。区间的奇偶性也已知了。

2023-03-31 20:27:04 566 1

原创 【动态规划】整数划分及其变种

每个数任意选无限次,问恰好装满背包的。与上题不同的是,分的每份都不能为空,即。实际上,和第二题一致。份的方案数,换句话说就是用。,且有n个物品体积分别是。题意转为完全背包求解。

2023-03-28 20:00:00 719 1

原创 【网络分析】并查集/树上差分

最后对我们所构造出来的一堆树DP(只是遍历一下),把每个点的权值下放到子树中的所有节点中。我们所构造的图是若干棵树,编号为 1−n 的节点都是树的叶子节点。我们通过并查集合并连通块,保证同一个连通块内的点同属一个集合。这样进行 k 次有效合并操作后,就会产生 k 个新点。操作 2 :向某个点所在的连通块的所有点累加一个值。然后依次输出编号为 1−n 的节点的权值即可。操作 1 :把两个点所在的连通块合并起来。对于每一个合并操作,找到两个点所属的集合。个孤立点的图,每个点上的权值都是。

2023-03-27 16:56:43 300

原创 【LeetCode第 332 场周赛】

由于范围过大,且做差会造成负数,树状数组下标从1开始。所以换用map的树状数组,平且值向右平移到正数。映射数值对应的最小开始下标即可,数值在1e9,并且无前导 ‘0’,所以只需要 O(30n)。倒序遍历,动态查找后缀的在区间如上范围内的值的个数。那么考虑用树状数组获取区间内值的个数。

2023-02-12 15:34:43 545

原创 【Cocos2dx】Lua API

Cocos2dx Lua版API

2023-02-11 13:13:08 167

原创 openresty配置

ngx.log(ngx.INFO, “日志内容”) 级别有ngx.STDERR ngx.EMERG ngx.ALERT ngx.CRIT ngx.ERR ngx.WARN ngx.NOTICE ngx.INFO ngx.DEBUG。例如rewrite_by_lua中ngx.ctx.a=10, content_by_lua中能拿到ngx.ctx.a。ngx.time() ngx.utctime()ngx.now() ngx.today()…ngx.req.get_method() 返回大写的字符串GET。

2023-02-10 14:45:50 1115

原创 【Quick-Cocos2dx-Commucity】Windows平台发布游戏

本示例使用Quick-Cocos2dx-Commucity开发,用VS2019打包发布游戏。演示简易的打包Win平台下的游戏.exe。

2023-02-07 00:14:17 445

原创 有向图、无向图找环

无向图:并查集、DFS有向图:拓扑排序、DFS。

2023-02-06 00:40:27 761

原创 【Codeforces Round #849 (Div. 4)】A~G题解

显然需要动态维护一串字符串的不同字符数,那么用 map 维护,当字符数变0需要erase掉当前的键,而 map.size() 就是当前该字符串的不同字符数,即是不同的键的数量。给定01串,每次可以删除两侧各一个字符,但是这两个同时删除的字符必需不同,即(01,10)。问最后能剩下的字符串最小值。可以发现的性质是,一段区间内的修改实际上等价于区间两侧的修改,即任意位置的一对可以同时变为其相反数。给定一串字符串,形如“LUDR”,问能否按字符串走法从(0,0)途经(1,1)。贪心,能删则删,维护删除的次数。

2023-02-04 21:17:02 821

原创 Qt调用主界面ui

A文件,B文件相互引用,实际上就是两个.h文件,不能同时存在include对方,一者换为声明。为了在其他类中调用主界面MainWindow的ui。

2023-02-03 19:18:59 1800

go web 项目开发脚手架

# web 项目开发脚手架 ## 项目分层模式 ### MVC - Model:模型代表一个存取数据的对象。它也可以带有逻辑,在数据变化时更新控制器。 - View:视图代表模型包含的数据的可视化。 - Controller:控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。 ### CLD - Controller:服务的入口,负责处理路由、参数校验、请求转发。 - Logic/Service:逻辑(服务)层,负责处理业务逻辑。 - DAO/Repository:负责数据与存储相关功能 ## 基本结构 - `conf`:项目具体配置 - `settings`:Viper 配置管理,结构体保存项目配置信息 - `logger`:zap 日志库管理项目日志 - `log`:项目输出日志 - `models`:数据模型对象 - `pkg`:第三方库(snowflake、JWT、...) - `routers`:路由注册 - `CLD`:controller、logic、dao

2024-01-08

skynet入门实战练习

skynet 入门实战练习 介绍:项目搭建了客户端和服务端,并采用 websocket 的通信模式,实现了多客户端(client)对应一代理服务(agent),简单易懂的实现设计,快速入门skyent上手开发。 功能:实现了登录(logind)、定时器(timer)、日志(logger)、网关(gate)、代理(agent)、看门狗(watchdog)、事件(event)、批处理(batch)、模糊搜索(search)、GM指令等模块。涉及 LRU 算法、分布式算法生成 ID,使用 MongoDB 数据库做数据存储。 项目地址:[https://gitee.com/Cauchy_AQ/skynet_practice](https://gitee.com/Cauchy_AQ/skynet_practice)

2023-12-22

基于skynet的多人在线聊天服务器

资源地址:[https://gitee.com/Cauchy_AQ/chat](https://gitee.com/Cauchy_AQ/chat) 介绍:基于Skynet通用的登录服务器模版,实现玩家登录认证。玩法是玩家能切换进入不同房间,房间内的玩家能够涨经验值,并且能在房间中进行发言。每个房间经验值最高的即为管理,管理可以踢出玩家。房间内的玩家之间可以转让经验值等。 特性: 1. 基于 skynet 的登录服务器模板,有网关、看门狗、登录服务 2. 客户端和服务端通信,采用 sproto 协议 3. 消息封包解包协议,采用二字节头部指定长度的字符串 4. 采用 openresty 进行用户登录鉴权,模拟第三方 sdk 根据用户信息及 token 值等返回 uid 5. 看门狗维护 agent 池,定时检测用户状态,定时补充代理,并会回收代理。 6. mysql 用于用户登录时加载数据,以及对用户定期存档,离线自动保存数据 7. redis 用于存储服务运行时的相关日志消息(待做持久化处理)

2023-08-29

Sunnet系统(仿Skynet轻量级游戏服务器开发框架)

Sunnet系统(C++并发编程,Actor模型,Reactor模型,Lua脚本嵌入) 项目文件: |-- CMakeLists.txt |-- README.md |-- include | |-- Conn.h | |-- ConnWriter.h | |-- LuaAPI.h | |-- Msg.h | |-- Service.h | |-- SocketWorker.h | |-- Sunnet.h | `-- Worker.h |-- main.sh |-- service | |-- chat | | `-- init.lua | |-- main | | `-- init.lua | `-- ping | `-- init.lua |-- src | |-- ConnWriter.cpp | |-- LuaAPI.cpp | |-- Service.cpp | |-- SocketWorker.cpp | |-- Sunnet.cpp | |-- Worker.cpp

2023-08-12

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

TA关注的人

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