MKleee
码龄8年
关注
提问 私信
  • 博客:42,598
    动态:16
    42,614
    总访问量
  • 12
    原创
  • 811,909
    排名
  • 4
    粉丝
  • 0
    铁粉

个人简介:游戏服务器开发工程师

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2017-05-16
博客简介:

qq_38815038的博客

查看详细资料
个人成就
  • 获得20次点赞
  • 内容获得2次评论
  • 获得42次收藏
创作历程
  • 12篇
    2022年
成就勋章
TA的专栏
  • 游戏服务器
    8篇
  • 分布式服务器
    1篇
  • 跨平台开发
兴趣领域 设置
  • 后端
    架构分布式
  • 游戏
    游戏程序
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

C++ noexcept关键字

noexcept简介noexcept有两个作用,一是作为说明符,用来说明函数是否跑出异常,一是运算符,能够判断函数是否有声明不会抛出异常。说明符举例:运算符举例:如果在移动构造时发生了异常,则将会发生很严重的错误,原本的数据也不可用,因此,我们需要保证移动构造的时候不抛出异常。如果函数没有抛出异常的可能,则函数可以使用移动构造,反之,则使用复制构造。下面的代码是一个强制开发者实现类型T的移动操作的交换值函数如果类型T的 移动构造和移动赋值函数会抛出异常,则会编译失败,这样让写类型T的开发者强制实现不抛出异常
原创
发布博客 2022.06.19 ·
711 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

Mysql事务以及特性

事务(transaction),是一个操作序列。这些操作要么都做,要么都不做。事务有四个特性,即ACID。Atomicity(原子性),指一个事务是一个不可分割的工作单位,其中的操作要么都成功,要么都失败,不能存在部分成功或者部分失败的情况。如果事务中一个SQL语句执行失败,则已执行的语句也必须回滚,数据库退回到事务前的状态。InnoDB保证原子性是通过redo log以及undo log来进行的。在InnoDB中,redo log是以512字节进行存储的,正好是磁盘页大小,因此写入是原子性的,不需要额外的
原创
发布博客 2022.06.10 ·
689 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Redo log

redo,重做,目的是恢复数据库的操作,在发生意外时进行重新操作,保证数据安全。Redo Log重做日志,事务中修改的任何数据,都会存储到日志中,包含表空间id、插入的记录所在的页号、insert的具体数据等。当数据库启动时,会根据checkpoint来判断哪些数据是需要恢复的。进行数据恢复时,innodb将从LOG_CHECKPOINT_LSN所指向的redo文件位置开始进行数据恢复。图一 lsn其中,checkpoint_page = redo_lsn - checkpoint_lsn,指已经记录到re
原创
发布博客 2022.06.10 ·
214 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

根据UID获取B站用户头像

示例:博主的uid是350692333获取用户信息的API https://tenapi.cn/bilibili/?uid=350692333然后会得到如下的数据{ "code": 200, "data": { "uid": "350692333", "name": "minfeee", "level": 4, "sex": "男", "description": "", "avatar": "http://i2.hdslb.com/bfs/face/02b0b379a8c0746fe20994972de5
原创
发布博客 2022.06.01 ·
2490 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

dup函数与CGI服务器

把标准输出重定向到一个网络连接。使用dup或者dup2函数来实现dup函数创建一个新的文件描述符,该新文件描述符和原有文件描述符oldfd指向相同的文件、管道或者网络连接。同时,dup函数返回的新文件描述符,总是取当前系统可用的最小整数值。dup2函数,返回的新文件描述符不小于newfd的整数值。dup\dup2函数,失败时返回-1并设置errno。因此,我们把本地的输出重定向到网络连接,就可以创建一个CGI服务器。
原创
发布博客 2022.06.01 ·
123 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

根据UID获取B站用户头像

示例:博主的uid是350692333获取用户信息的APIhttps://tenapi.cn/bilibili/?uid=350692333然后会得到如下的数据{ "code": 200, "data": { "uid": "350692333", "name": "minfeee", "level": 4, "sex": "男", "description": "", "avatar": "http://i2.hdslb.com/bfs/face/02b0b379a8c0746fe209949
原创
发布博客 2022.05.19 ·
1971 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

游戏设计模式-单例模式

当我刚进入游戏行业的时候,所编写的代码,使用了不少的单例,但随着后来的很多bug,我开始意识到单例模式的弊端。1 什么是单例模式“确保一个类只有一个实例,并为其提供一个全局访问入口。单例模式提供了在编译期就能确保某个类只有一个实例的方法。单例的定义:(1)构造函数私有化,防止外界创建出对象;(2)使用一个唯一的变量指向该类的唯一实例;(3)提供一个开放接口供外部使用。2 创建单例的几种方法(1)Lazy Singleton(懒汉):单例在第一次使用时才会被创建出来。
原创
发布博客 2022.04.20 ·
4644 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

游戏设计模式-原型模式

使用特定原型实例来创建特定种类的对象,并且通过拷贝原型来创建新的对象。原型模式的核心思想是:一个对象可以生成与自身相似的其他对象。假设我们有一个怪物的类,我们可以这样构造:#include <iostream>class Enemy{public: virtual ~Enemy() {} virtual std::shared_ptr<Enemy> Clone() = 0;};class BirdEnemy :public Enemy{public.
原创
发布博客 2022.04.14 ·
3415 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

游戏设计模式-观察者模式

成就系统,基本上是每个游戏里都会涉及到的系统,但如果直接使用其它系统的函数接口,你将会发现整个项目中,每个系统都要和成就系统耦合在一起。这是一件极其糟糕的事情。观察者模式可以解决这件事情。首先,我们先定义两个类,分别是观察者和被观察者。观察者:class Observer{ friend class Subject;public: Observer() :next(nullptr), previous(nullptr) {} void OnNotify(con.
原创
发布博客 2022.04.09 ·
5405 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

游戏设计模式-命令模式

游戏中,玩家的输入方式有很多种,例如键盘、鼠标等。玩家输入操作,游戏需要调用相应的逻辑,最简单的处理方式是:if (Input.GetKeyDown("Q")) Jump();else if (Input.GetKeyDown("T")) Idle();else if (Input.GetKeyDown("A")) Attack();else if (Input.GetKeyDown("Z")) Skill();...
原创
发布博客 2022.04.07 ·
3446 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux调整随机端口范围(服务器启动失败 端口被占用)

Linux调整随机端口范围博主最近在工作中遇到了问题,服务器启动不起来,bug显示端口被占用。端口是被connect端给占用了,非listen端。
原创
发布博客 2022.03.09 ·
4883 阅读 ·
5 点赞 ·
0 评论 ·
10 收藏

分布式服务器中的数据安全问题及其解决办法

最近笔者在工作中遇到了这样一个问题:对于离线的数据/远端的数据,如何保证在处理过程中的数据安全。
原创
发布博客 2022.03.04 ·
2800 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

晚上10点半的上海地铁,大家都是加班🐶

发布动态 2022.03.02

植物大战僵尸素材资源包(图片/声音)

发布资源 2022.03.02 ·
rar