- 博客(736)
- 资源 (92)
- 收藏
- 关注
原创 C++:08---成员变量初始化方式
成员变量初始化有三种方式:在构造函数体内赋值初始化在自定义的公有函数体中赋值初始化(一般用于成员变量的初始化)在构造函数的成员初始化列表初始化一、构造函数体内初始化说明:在构造函数体内的...
2020-11-26 08:00:00 242
原创 C++:09---类静态成员、类常量成员
一、类静态成员(static)先介绍一下什么是静态变量、静态函数静态局部变量:存在域(全局数据区),作用域(块作用域)静态全局变量:存在域(全局数据区),作用域(整个文件)静态函数:存在...
2020-11-26 08:00:00 198
原创 (十三)nodejs循序渐进-高性能游戏服务器框架pomelo之扩展聊天服务器为机器人自动聊天
RPC的调用问题今天算是又增强了自己对pomelo RPC的认识,因为一个bug。起初,我们游戏的角色信息是作为一个redis缓存对方存放的,有一个不好的地方就是,如果别的地方调用该玩家的信息并进行修改,就可能会出现两处数据修改,结果却只有一处能够修改成功。例如:A接口,B接口。都会获取charInfo并对charInfo 进行修改。先调用A接口, 在A接口处理逻辑的过程中,调用了B接口。这时候A,B获取到的charInfo是一样的,但是,修改的属性值可能不一样,在redis设置缓存的时...
2020-11-25 11:27:21 444 5
原创 C++:04---内联函数
1.概念:内联类似于宏定义,当程序执行到内联函数时,相当于复制了一份函数代码。牺牲代码空间,赢得了时间内联说明只是向编译器发出一个请求,编译器可以选择忽略这个请求2.关键字:inline...
2020-11-25 11:01:01 241
原创 C++:05---命名空间
一、概念:①类似于仓库,空间内存储代码,需要用到时调用②也为防止名字冲突提供了更加可控的机制二、命名空间的定义定义的基本格式如下:namespace 命名空间名{//一系列声明与定...
2020-11-25 11:01:01 87
原创 C++:02---命名空间
一、概念:①类似于仓库,空间内存储代码,需要用到时调用②也为防止名字冲突提供了更加可控的机制二、命名空间的定义定义的基本格式如下:namespace 命名空间名{//一系列声明与定...
2020-11-25 11:01:01 97
原创 (十二)nodejs循序渐进-高性能游戏服务器框架pomelo之创建一个游戏聊天服务器
上个章节我们简单介绍了下pomelo的安装和目录结构,有读者可能觉得有点吃不消,为什么不再深入讲一讲目录结构和里边的库,这里我就不费口舌了,大家可以去官网参考文档说明,本文只告诉大家如何利用这个框架来开发自己的东西。随着文章的后续不断推进,我相信大家会越来越熟悉pomelo,对猪场框架的使用也会越来越得心用手。 新建gate和chat服务器在app/servers目录下新建gate和chat服务器。gate服务器:在一般情况下用户量一台机器就可以支撑,但用户量多...
2020-11-24 13:58:49 1087 3
原创 (十一)nodejs循序渐进-高性能游戏服务器框架pomelo之启动流程和组件
游戏启动过程启动入口在使用pomelo进行游戏开发时,工程目录下的app.js是整个游戏服务器的启动运行入口。app.js中创建项目,进行默认配置并启动服务器的代码如下:var pomelo = require('pomelo');var app = pomelo.createApp();app.set('name', 'nameofproject');app.start();从上面的代码可以看出,用户首先需要在项目中引入pomelo,然后创建application的实例app,接着
2020-11-24 13:58:10 594
原创 (十)nodejs循序渐进-高性能游戏服务器框架pomelo之介绍和安装篇
Pomelopomelo是一个快速、可扩展、Node.js分布式游戏服务器框架,对游戏服务器开发感兴趣的同学可以关注关注。之前做页游,端游和手游一直都是用的C++,或者C++ + lua,C++ + golang的方式来开发,说实话,C++用起来得心用手,有多少坑自己心里有点逼数,用的大都是腾讯系的框架库,要么是盛大系的框架库,底层比较稳定,即使如此,但一旦有个项目要立项,之前代码不可换皮的情况下,你发现用C++开发还真的是笨重,因为你可能又得重新编一大堆的库,或许编完就得大半天功夫,有些工具类库可
2020-11-24 13:57:46 995
原创 (九)nodejs循序渐进-Express框架(进阶篇)
Express 框架Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。 定义了路由表用于执行不同的 HTTP 请求动作。 可以通过向模板传递参数来动态渲染 HTML 页面。 安装 Express安装 Express 并将其保存到依赖列表中:
2020-11-24 13:56:59 396
原创 (八)nodejs循序渐进-事件驱动(进阶篇)
事件驱动程序Node.js 使用事件驱动模型,当web server接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求。当这个请求完成,它被放回处理队列,当到达队列开头,这个结果被返回给用户。这个模型非常高效可扩展性非常强,因为 webserver 一直接受请求而不等待任何读写操作。(这也称之为非阻塞式IO或者事件驱动IO)在事件驱动模型中,会生成一个主循环来监听事件,当检测到事件时触发回调函数。整个事件驱动的流程就是这么实现的,非常简洁。有点类似于观察者模式,事件.
2020-11-24 13:56:41 385
原创 (七)nodejs循序渐进-模块系统(进阶篇)
模块系统为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。创建模块Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。接
2020-11-24 13:56:27 160
原创 (六)nodejs循序渐进-数据流和文件操作(基础篇)
BufferJS 语言自身只有字符串数据类型,没有二进制数据类型,因此 NodeJS 提供了一个与 String 对等的全局构造函数 Buffer 来提供对二进制数据的操作。除了可以读取文件得到 Buffer 的实例外,还能够直接构造,Buffer 与字符串类似,除了可以用.length属性得到字节长度外,还可以用[index]方式读取指定位置的字节。例如:var bin = new Buffer([ 0x68, 0x65, 0x6c, 0x6c, 0x6f ]); Buffer 与...
2020-11-24 13:56:05 335
原创 (四)nodejs循序渐进-函数,类和对象(基础篇)
上一篇文章讲到了基本数据类型和运算符,相信大家都能做简单的运算,本篇文章将讲述函数,类,对象。函数在nodejs中,一个函数可以作为另一个函数的参数。我们可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数。Node.js 中函数的使用与 JavaScript 类似,举例来说,你可以这样做:function say(word) { console.log(word);}function execute(someFunction, value) { someFuncti
2020-11-24 13:54:58 705
原创 (三)nodejs循序渐进-值传递和引用传递,深拷贝和浅拷贝(基础篇)
值传递和引用传递值类型变量:存在内存的堆中,比如:a=1引用类型变量 :1.指针存在于栈中,2.引用类型的具体内容存在于堆中 ex:let a={b:1} a的指针指向 堆中的地址0xffac0ec正如我在 第二章说的,number string boolean这三种常规类型的是值传递, 而array,对象这种就属于引用传递了。代码来说话,我们先看看值传递:var int1 = 12;var int2 = int1;int1 = 10000;console.l.
2020-11-24 13:54:35 1468
原创 (二)nodejs循序渐进-nodejs基本类型和循环条件语法篇(基础篇)
目录入门之helloworld进阶之helloworld http服务器步骤一、引入 required 模块步骤二、创建服务器基本语法篇变量声明基础类型if else循环语句forfor ... inwhile do和do while运算符加减乘除==, ===, !=, !==typeofnull,undefined,NaN好了, 上一篇文章已经讲了node环境安装,这里我们开始第一个经典程序 hellowor...
2020-11-24 13:53:56 675 2
原创 (一)nodejs循序渐进-nodejs环境安装(基础篇)
目录NodeNode的优点Node.js 安装配置使用nvm管理不同版本的 node 与 npmnvm 与 n 的区别卸载全局安装的 node/npmWindows 安装Linux 安装安装多版本 node/npm在不同版本间切换列出已安装实例在多环境中,npm该如何使用呢?其他命令NodeNode 是一个让 JavaScript 运行在服务器端的开发平台,它让 JavaScript 成为与PHP,Python等服务端语言平起平坐的脚本语言。 no
2020-11-24 13:53:28 1096 4
原创 MYSQL增量备份和全量备份脚本分享
mysql的全量备份与增量备份全量备份:可以使用mysqldump直接备份整个库或者是备份其中某一个库或者一个库中的某个表。增量备份:增量备份是针对于数据库的bin-log日志进行备份的...
2020-11-24 11:50:00 519
原创 利用GAE开发一个定时器应用
最近对Google App Engine感兴趣。GAE是免费的(当然也有升级收费的),默认可以建立10个免费的web应用(不过我的账号可以建立25个免费应用^__^),至于配置,如果只是做简单的应用足够应付了,例如做一个定时抓取数据的应用,又或者用goagent搭建梯子。虽然GAE这么好的产品无法在国内(appspot.com在国内是无法访问的),但利用免费的资源做一些简单的事情还是很有意义的,对
2020-11-20 11:24:26 1235
原创 MYSQL增量备份和全量备份脚本
1.MySQLdump增量备份假定星期日下午1点执行全量备份,适用于MyISAM存储引擎。[root@test-huanqiu ~]# MySQLdump --lock-all-tables --flush-logs --master-data=2 -u root -p test > backup_sunday_1_PM.sql对于InnoDB将--lock-all-tables替换...
2020-11-20 09:46:13 277
原创 GCC在C语言中内嵌汇编 asm __volatile__
在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作。1、简单的内嵌汇编例: __asm__ __volatile__("hlt"); "__asm__"表示后面的代码为内嵌汇编,"as
2020-11-20 09:45:08 71621 6
原创 记一次海外大型SLG游戏服务器进程被OOM的修复经历
最近刚接手一个海外游戏项目,java写的,运行在jvm之上,吃内存倒是挺厉害的,我一个16G内存的服务器被吃的满满的,这个时候为了解决内存不足,我开启了虚拟内存,方法如下:sudo dd if=/dev/zero of=/swapfile bs=256M count=16 sudo mkswap /swapfile sudo swapon /swapfile #开机自动启动echo "/mnt/swapfile swap swap defaults 0 0 " >> /etc...
2020-11-18 16:10:41 1729 5
原创 (二)容器从入门到深入-初识Kubernetes
Kubernetes 是什么Kubernetes 脱胎于 Google 的 Borg 系统,是一个功能强大的容器编排系统。Kubernetes 及其整个生态系统(工具、模块、插件等)均使用 Go 语言编写,从而构成一套面向 API、可高速运行的程序集合,这些程序文档精良、易于参与贡献或在其上构建应用程序。每个开发、运维或感兴趣的读者都应熟悉它的一些核心概念,以便理解这个系统及其不同的功能,以及为什么几乎所有人都在使用它。在继续之前,我想提一下 Kubernetes 的几个顶级朋友(或竞争对手):EC
2020-11-18 12:01:43 231 2
原创 (一)容器从入门到深入-容器和镜像
一、容器与镜像什么是容器?在介绍容器的具体概念之前,先简单回顾一下操作系统是如何管理进程的。首先,当我们登录到操作系统之后,可以通过 ps 等操作看到各式各样的进程,这些进程包括系统自带的服务和用户的应用进程。那么,这些进程都有什么样的特点?第一,这些进程可以相互看到、相互通信; 第二,它们使用的是同一个文件系统,可以对同一个文件进行读写操作; 第三,这些进程会使用相同的系统资源。这样的三个特点会带来什么问题呢?因为这些进程能够相互看到并且进行通信,高级权限的进程可以攻击其他进程;
2020-11-18 11:54:48 346
原创 如何抓住QQ小游戏买量红利:休闲与内购小游戏买量优化方法分享
2019年5月,Qzone小游戏、玩一玩整合升级为全新QQ小游戏平台,其以开放的社交生态和关系链,为开发者带来了巨大的流量红利。为了帮助更多开发者适应和了解新市场。本文将介绍QQ小游戏投放规模现状以及各项扶持政策,并解读轻度小游戏和重度小游戏的买量优化方法及案例,最后介绍了四项全新的投放能力,希望可以帮助开发者更加了解小游戏的生态。为方便阅读,本文主要分为以下5个要点:一、QQ小游戏投放规模现状二、三大政策扶植,鼓励开发者买量三、休闲小游戏买量优化方法四、内购小游戏买量优化方法五
2020-11-18 10:00:04 1829 4
原创 抖音快手小视频推荐算法之--协同过滤算法剖析
有人说抖音摧毁了中国的年轻人,也有人说抖音改变了自己的生活形态,还有人说抖音让自己的生活过的更加有意义……一千个人眼中,有一千个哈姆雷特,各人有各个行使自己话语的权力,我们无从争辩。对于做自媒体的同仁们来说抖音就是粉丝变现的另外一个渠道,那抖音具体的算法是什么样的呢? 抖音的流量分配是去中心化的。在微博和公众号上,如果你没有粉丝的话,你发的内容就不会有人看,但是抖音就不一样,你可以完全没有粉丝。所有的抖音用户,你拍的任何一个视频无论质量好坏,发布了之后一定会有播放量,从几十到上千都...
2020-11-18 09:35:17 4029 2
原创 (十八)深入浅出TCPIP之HTTP和HTTPS
专栏其他文章:理论篇:(一)深入浅出TCPIP之理解TCP报文格式和交互流程(二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上)(三)深入浅出TCPIP之再识TCP,理解TCP四次挥手(上)(四)深入浅出TCPIP之TCP三次握手和四次挥手(下)的抓包分析(五)深入浅出TCPIP之TCP流量控制(六)深入浅出TCPIP之TCP拥塞控制(七)深入浅出TCPIP之深入浅出TCPIP之TCP重传机制(八)深入浅出TCPIP之TCP长连接...
2020-11-17 18:20:22 255 1
原创 ncnn网络框架使用指南
下面以在ncnn上实现caffe网络模型为例,和大家分享下ncnn这个牛叉的网络框架的使用指南。准备caffe网络和模型caffe 的网络和模型通常是搞深度学习的研究者训练出来的,一般来说训练完会有train.prototxtdeploy.prototxtsnapshot_10000.caffemodel部署的时候只需要 TEST 过程,所以有 deploy.prototxt 和 caffemodel 就足够了alexnet 的 deploy.prototxt 可以在这里下载ht.
2020-11-13 10:22:58 2638
原创 深入浅出TCPIP之实战篇—用c++开发一个http服务器(二十一)
专栏其他文章:(一)深入浅出TCPIP之理解TCP报文格式和交互流程(二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上)(三)深入浅出TCPIP之再识TCP,理解TCP四次挥手(上)(四)深入浅出TCPIP之TCP三次握手和四次挥手(下)的抓包分析(五)深入浅出TCPIP之TCP流量控制(六)深入浅出TCPIP之TCP拥塞控制(七)深入浅出TCPIP之深入浅出TCPIP之TCP重传机制(八)深入浅出TCPIP之TCP长连接与短连接详解...
2020-11-12 13:32:23 5591 41
原创 (十五)非常全面的TCPIP面试宝典-进入大厂必备总结
TCP 作为传输层的协议,是一个IT工程师素养的体现,也是面试中经常被问到的知识点。在此,我将 TCP 核心的一些问题梳理了一下,希望能帮到各位。
2020-11-10 17:35:19 1563 7
原创 (十六)深入浅出TCPIP之Hello CDN
什么是CDNCDN 其实是 Content Delivery Network 的缩写,即“内容分发网络”。CDN是将媒体资源,动静态图片(Flash) ,HTML, CSS, JS等等内容缓存到距离你更近的互联网数据中心,从而让用户进行共享资源,实现缩减站点间的响应时间等等需求。CDN的起源CDN 诞生于二十多年前,随着骨干网压力的逐渐增大,以及长传需求的逐渐增多,使得骨干网的压力越来越大,长传效果越来越差。于是在 1995 年,MIT 的应用数学教授 Tom Leighton 带领着研究.
2020-11-06 15:02:49 507 1
原创 (十一)深入浅出TCPIP之TCP粘包问题
目录粘包和拆包问题保护消息边界和流粘包、拆包场景为什么会发生TCP粘包、拆包呢?如何处理粘包、拆包问题?怎样封包和拆包?其他问题TCP为什么引入接受缓存这个数据结构?专栏其他文章:理论篇:(一)深入浅出TCPIP之理解TCP报文格式和交互流程(二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上)(三)深入浅出TCPIP之再识TCP,理解TCP四次挥手(上)(四)深入浅出TCPIP之TCP三次握手和四次挥手(下)的抓包分析...
2020-11-05 16:42:44 646 1
原创 (七)深入浅出TCPIP之深入浅出TCPIP之TCP重传机制
TCP重传机制TCP要保证所有的数据包都可以到达,所以,必需要有重传机制。注意,接收端给发送端的Ack确认只会确认最后一个连续的包,比如,发送端发了1,2,3,4,5一共五份数据,接收端收到了1,2,于是回ack 3,然后收到了4(注意此时3没收到),此时的TCP会怎么办?我们要知道,因为正如前面所说的,SeqNum和Ack是以字节数为单位,所以ack的时候,不能跳着确认,只能确认最大的连续收到的包,不然,发送端就以为之前的都收到了。超时重传机制一种是不回ack,死等3,当发送方发现收不到3
2020-11-05 11:00:30 821 1
原创 (十三) 深入浅出TCPIP之TCP套接字参数
应用程序编写者只有在确切了解它的效果并确实需要的情况下,才设置TCP_NODELAY选项,因为设置后对网络性能有明显的负面影响。TCP_NODELAY是唯一使用IPPROTO_TCP层的选项,其他所有选项都使用SOL_SOCKET层。第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为 SOL_SOCKET。为了允许SO_LINGER,应用程序应将l_onoff设为非零,将l_linger设为零或需要的超时值(以秒为单位),然后调用setsockopt()。
2020-11-05 11:00:12 590 1
原创 (十四)深入浅出TCPIP之初识UDP理解报文格式和交互流程
目录关于UDP代码示例UDP数据报格式再次理解UDP数据包(1)UDP报文大小的影响因素,主要有以下3个(2) UDP数据包最大长度(3) UDP数据包理想长度UDP数据包的发送和接收问题(1) UDP的通信有界性(2) UDP数据包的无序性和非可靠性(3) UDP数据包的接收(4) UDP包分片问题UDP丢包问题[1] UDP socket缓冲区满造成的UDP丢包[2] UDP socket缓冲区过小造成的UDP丢包[3] ARP缓存过期导致
2020-11-02 17:20:44 1857 5
原创 (十二)深入浅出TCPIP之Nagle算法
TCP的数据流大致可以分为两类,交互数据流与成块的数据流。交互数据流就是发送控制命令的数据流,比如relogin,telnet,ftp命令等等;成块数据流是用来发送数据的包,网络上大部分的TCP包都是这种包。很明显,TCP在传输这两种类型的包时的效率是不一样的,因此为了提高TCP的传输效率,应该对这两种类型的包采用不同的算法。总之,TCP的传输原则是尽量减少小分组传输的数量。
2020-11-02 10:52:44 450 1
原创 (九)深入浅出TCPIP之网络同步异步
在网络同步中,有两种同步方式,分别为同步与异步。同步的操作指的是,当所有的操作请求都做完,才将结果返回给用户,用户才能进行下一个操作,这样就会让用户有一种卡顿的感觉,因为需要等待上一步操作的执行结果。异步操作指的是,用户的操作之间不需要进行等待,而是在服务端设置一个消息队列,保存用户的每一步的操作,因此用户不会有卡顿的感觉。
2020-10-31 11:31:05 1248 3
原创 (十)深入浅出TCPIP之网络阻塞和非阻塞
专栏其他文章:(一)深入浅出TCPIP之理解TCP报文格式和交互流程 (二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上)(三)深入浅出TCPIP之再识TCP,理解TCP四次挥手(上)(四)深入浅出TCPIP之TCP三次握手和四次挥手(下)的抓包分析(五)深入浅出TCPIP之TCP流量控制(六)深入浅出TCPIP之TCP拥塞控制(七)深入浅出TCPIP之深入浅出TCPIP之TCP重传机制(八)深入浅出TCPIP之TCP长连接与短连接详解...
2020-10-31 11:27:59 1181 1
ACM挑战程序设计竞赛C++习题和代码
2024-09-11
Unity射击游戏开发教程的源码
2024-09-09
PL/0 编译器的扩充-实验报告
2024-09-04
BERT: Pre-training of Deep Bidirectional Transformers forLanguag
2024-09-03
车牌识别算法C++项目源码
2024-09-03
QT绘制中秋佳节的月亮阴晴圆缺动画
2024-09-03
国庆特惠-世界国家名称及国旗数据
2024-09-03
分类不锈钢板中的表面缺陷类型数据集
2024-09-02
全国热门旅游景点数据集合excel
2024-09-02
Acm 练习题集合 C语言开发
2024-08-29
Deep Learning From Scratch训练营学习笔记
2024-08-29
图书馆管理系统C++语言
2024-08-29
回合制卡牌战斗游戏服务器架构和业务源码(跨平台,框架和主逻辑C++,登录支付php)
2024-08-22
基于MindX SDK 开发,使用yolo算法来进行目标检测的python代码
2024-08-19
K-means聚类算法
2024-08-19
mxVision-5.0.1打包下载,华为服务器arm环境
2024-08-16
yolov8的入门级(训练+预测)的代码demo
2024-08-14
神经网络学习资料整理从入门到精通
2024-08-14
golang开发使用mongodb统计数据并输出到excel中
2024-08-12
海康ISAPI开发指南-音频产品-广播音频输出
2024-08-12
rollercoaster-dataset过山车数据集下载
2024-08-09
海康音柱服务调用C++工程
2024-08-05
育龄人群备孕胎次与避孕方式数据集
2024-07-25
糖尿病并发症预警数据集
2024-07-25
海康相机算法检测SDK的C++开发项目源码
2024-07-22
aarch64-linux-gnu环境opencv4.5.5交叉编译库
2024-06-06
opencv跨平台编译库
2024-05-31
使Unity开发的游戏支持热更新的解决方案
2024-05-15
2048微信小游戏代码下载
2024-05-15
如何获取车机系统内部的文件和文件夹
2023-11-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人