自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 资源 (9)
  • 收藏
  • 关注

原创 golangci-lint 报错

【代码】golangci-lint 报错。

2024-04-09 10:02:18 264 1

原创 Virtual安装centos后,xshell连接centos 测试及遇到的坑

1. 网络使用Host-Only模式,XShell可以直接连上centos, 但是由于使用的是Host-Only模式,centos不能访问网络,只能与宿主机相互通信。

2023-11-19 18:49:06 690

原创 mongoDB相关笔记

mongoDB连接查询db.guild_member.aggregate([ { $match: { 'guild_id':11 } }, { $lookup: { from: "player_data", // 要连接的表 localField: "player_id", foreignField: "player_id", as: "same_guild" } }, { $project: { '_id': 0,

2022-05-17 10:53:57 263 1

原创 mongoDB权限管理

开启mongoDB的权限管理,找了很多文章,最后发现都不行。比如这个网址,当然也可能是我操作不对...按照文中操作后报错:auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.打开mongod.log有这样的报错:SASL SCRAM-SHA-1 authenticatio

2021-12-17 17:01:22 4775

原创 TCP心跳时间的设置

TCP心跳存在的必要性:1. 当client网络出现某些异常断开时,server是无法知道的,因为有时client没有发送fin包。所以需要使用心跳来判断client是否还连接到server上。2. 当需要server向client推送消息时。我们需要设定心跳时间在合理的范围,不能超过nat超时时间,也不能太短(信令风暴),如果超过了nat超时时间,则server无法推送消息到client...

2021-07-14 16:07:45 1190

原创 mysql 相关,开发记录而已

mysql创建一个表A,只加一个字段,没有主键,保存表。之后想添加一个字段id作为主键,发现报错:Duplicate entry '0' for key 'PRIMARY'解决方案: 1. 把id字段设置为自增 2. 删除表,重新建表A,先加id字段,然后设置为主键,可以发现不再报错!!!...

2021-05-21 10:37:37 90

转载 cmd执行命令行程序时有时会卡住

背景说明我们项目开发了一个后台程序,使用的是命令行模式,运行时就一个窗口。我们的运维会定时巡检,有一次报修说程序不在运行了。查看日志等都无果。最后远程看了一下,发现界面上有一个白色的光标,类似如下图:这个情况很有可能在巡检的时候,特别是在电脑息屏时,运维不小心点击了一下鼠标。解决方案win10 和 winserver2016 等服务器都是默认开启快速编辑模式,当然不排除用户自己设置了这个选项。方式一:windows cmd->属性->选项->编辑选项。...

2021-05-13 14:52:46 3291

原创 git某些命令的使用(个人笔记)

1. git rebase 和 git merge的使用 git rebase建议用于分支合并主分支,而git merge不但可以用于前者还可用于主分支合并分支。 先说git rebase: 假如当前主分支是master,其它分支是dev。 git rebase时可能进行多次冲突的解决,这取决于当前分支有多少次commit,以及解决一次冲突后跟后面的commit是否会再次冲突,举例如下: a. 在master分支和dev分支有文件t...

2021-04-24 21:21:39 1445

原创 golang相关,包括go mod 使用第三方包和自己本地开发的包

一. 环境配置go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct二. go mod 使用 在系统任意目录下建立gomodtest目录,而不需要把gomodtest放到GOPATH目录下。 1. cmd 到当前gomodtest目录下,运行 go mod init gomodtest 2. 建立main文件,内容如下:package ma...

2021-04-06 11:23:55 3782

转载 分布式一致性算法Raft简介(转载)

https://www.jianshu.com/p/ee7646c0f4cfhttps://www.jianshu.com/p/10bdc956a305最近看了Ongaro在2014年的博士论文《CONSENSUS: BRIDGING THEORY AND PRACTICE》的部分章节,对raft有了初步的理解。其中论文中提到用于教学的user study,个人感觉非常不错,言简意赅,特此分享出来。本文基本与原讲解一致,又加上了笔者的一点理解。资源来源于Ongaro和Ousterhout在.

2021-03-31 09:59:46 201

原创 go test 使用 和 我遇到的坑

网上很多go test的教程,但是写得都不好,尤其对新手不友好。现在同目录下有两个文件:calc.go 和 calc_test.go,现在就来讲一讲具体操作。calc.go 内容如下package mainfunc Add(a int, b int) int { return a + b + 1}func Mul(a int, b int) int { return a * b}func GetSumOut(n int) (sum int) { for i :

2021-03-25 16:42:28 1287

转载 van Emde Boas tree

原链接介绍van Emde Boas tree是一种适用于0-u数据存储的一种数据类型。它每次根据u的一半来依次递减,直到最后减少到2为止。对数据有一定要求:要求u是2的2k或者2k+1次方。单个结点的结构如下:每个结点包含以下数据:其中u是当前结点的cluster的数量;min和当前结点中最小结点的数,而且最小值不出来在cluster当中; max是当前结点...

2019-11-21 16:34:41 1172

转载 Linux下进程在后台可靠运行(nohup/&)和前后台运行程序切换

我们经常会碰到这样的问题,用 telnet/ssh登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口、网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题。nohup/setsid/&场景如果只是临时有一个命令需要长时间运行,什么方法能最简便的保...

2019-10-03 16:32:48 1005

原创 go tool pprof 使用

package mainimport "sync"import "time"import "fmt"import ( "runtime" "runtime/debug" "runtime/pprof" "os" "strings" "strconv")type myLocker sync.Lockervar ( progname string)func in...

2019-09-26 01:11:58 1986

转载 使用DLV调试Go语言的核心转储(Core Dumps)

调试Go语言的核心转储(Core Dumps)delve coredump 调试工具 golang4.6k 次阅读 · 读完需要 11 分钟1翻译原文链接转帖/转载请注明出处英文原文链接【Go, the unwritten parts】发表于2017/05/22 作者JBD是Go语言开发小组成员检查程序的执行路径和当前状态是非常有用的调试手段...

2019-09-10 23:54:47 1472

原创 麻将胡牌算法(查表法 和 拆解法)

/* 1.查表法计算麻将胡牌(原理:http://hp.vector.co.jp/authors/VA046927/mjscore/mjalgorism.html) 2.跟拆解法对比进行效率比较*/package mainimport ( "fmt" "time" "sort" "os" "encoding/json" "log" "runtim

2018-07-06 17:29:03 18144 6

原创 Golang继承,指针与非指针的区别

package mainimport "fmt"import "time"type cc interface{ MyPrint() MyPrint2()}type cc1 struct{ a int}type cc2 struct{ *cc1}type cc3 struct{ cc1}func(c *cc1)MyPrint(){ f...

2018-05-15 14:12:49 2616

转载 LINUX 三剑客之awk命令

Linux三剑客之awk命令awk简介awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他...

2018-05-08 20:24:50 612

转载 golang的defer精析

example1func f() (result int) {     defer func() {         result++     }()     return 0}example2func f() (r int) {     t := 5     defer func() {         t = t + 5     }()     return t}exam...

2018-04-23 16:38:05 226

原创 windows下生成dumpfile程序崩溃的问题(WriteProcessMemory)

之前在win xp和win7没有问题,用了win10就出问题了.解决办法:VirtualProtect函数使用VirtualProtectEx代替即可!所有代码如下:#ifndef __DUMP_H__#define __DUMP_H__#include <stdlib.h>#include <stdio.h>#include <ostream>#if...

2018-04-09 22:55:36 1264

原创 记录一下。

1、VMvare workstation,virtual GDB,oracle VM virtualBOX, XSHELL2、oracle VM virtualBOX + centos 挂载共享文件夹(VMware workstation类似,https://www.cnblogs.com/SwiftAero/p/6273085.html):1)、确保...

2018-03-20 09:50:43 213

转载 C++11实现一个轻量级的AOP框架

转载自:点击打开链接AOP介绍  AOP(Aspect-Oriented Programming,面向方面编程),可以解决面向对象编程中的一些问题,是OOP的一种有益补充。面向对象编程中的继承是一种从上而下的关系,不适合定义从左到右的横向关系,如果继承体系中的很多无关联的对象都有一些公共行为,这些公共行为可能分散在不同的组件、不同的对象之中,通过继承方式提取这些公共行为就不太合适了。使用AOP还有

2018-01-18 19:11:13 2191

转载 skynet coroutine 运行笔记

skynet coroutine 运行笔记阅读云大的博客以及网上关于 skynet 的文章,总是会谈服务与消息。不怎么看得懂代码,光读这些文字真的很空洞,不明白说啥。网络的力量是伟大的,相信总能找到一些解决自己疑惑的文章。然后找到了这篇讲解 skynet 消息队列的文章(最新的 skynet 消息队列代码已经有更新,变得更简洁易读)。了解了 skynet 消息是如何派发的,

2017-09-02 17:47:23 441

原创 windows 端口被进程占用 但是进程已经关闭

windows 端口被进程占用 但是进程已经关闭,再开此程序,提示开启失败或端口被占用等。这是因为此进程使用了system("start a.exe")等类似的语句,导致在其他进程还未退出时,windows的cmd进程和conhost进程都不会完全退出。此时如果启动start的父进程退出,也不会退出的很干净。端口就被留下来了。解决办法:只要用任务管理器杀死所有看到的cm

2017-08-09 21:03:49 5944

原创 lua中require的使用

lua中require有几种用法。1、加载文件    如果有一个test.lua的文件,可以这样加载 require("test")    如果test.lua不在可执行程序A当前目录下,则加上相应路径即可    如:A在目录X下,test.lua在X/lua/test.lua下,则这样写require("./lua/test")            windows下也可以这

2017-07-27 15:31:05 7488

转载 Lua的require机制

http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73260878e482a958448e435061e5a3db5ec747f4458848f3a364ab20b41edfb3c74320323a09bbfd20c82e5866d72c8713b2e5bd55612a25bfc9a1f769477875b

2017-07-12 15:43:30 759

转载 探索skynet(二):skynet如何启动一个服务

转自:探索skynet(二):skynet如何启动一个服务时间 2017-02-12 17:08:35  一根笨茄子原文  http://blog.guoyb.com/2017/02/12/skynet-2/主题 Luaskynet框架是由C语言写成的,而skynet的服务可以完全用lua语言来编写,灵活性很高。那skynet是如何启动一个lua语言编写的服务的

2017-06-28 11:10:40 6438

原创 jemalloc 编译出错

linux编译jemalloc,按照install.md的安装说明:Building and installing a packaged release of jemalloc can be as simple astyping the following while in the root directory of the source tree: ./configure

2017-06-22 20:35:56 2556

原创 makefile 实验

makefile 功能学习:vim makefile,然后粘贴以下内容,退出vim后分别输入make和make linux命令:PLAT ?= none$(warning A top-level warning $(PLAT))PLATS = linux freebsd macosxCC ?= gcc.PHONY : none $(PLATS) clean all

2017-06-12 19:31:59 1126

转载 VS开发Linux程序(VisualGDB)

点击打开链接VisualGDB是在vs上开发Linux程序的工具,利用visual studio强大的功能调试Linux程序真的是很惬意的一件事情。VisualGDB支持Linux的原理是,通过ssh连接到Linux系统上通过ssh给linux下达命令,既然需要Linux系统,而VS又是Windows系统,那么就需要一台虚拟机。对于习惯了Windows下的开发,

2017-05-17 17:35:11 9462

原创 使用VisualGDB在windows上编写linux程序(centos)遇到的问题

1、编写多线程程序时,报错: undefined reference to `pthread_create',需要在设置中加上多线程的库.

2017-05-13 17:17:20 1929 1

原创 使用VMware安装centos7后与本机windows系统 ping不通

1、在VMWare网络设置中设置成桥接模式2、进入/etc/sysconfig/network-scripts/ 下将配置修改成如下类似的形式:HWADDR=00:0C:29:CA:A5:87TYPE=EthernetBOOTPROTO=staticDEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_FAILURE_FATAL=no

2017-05-10 14:52:44 10932 1

原创 MYSQL 问题

起因是我通过本机连接本机数据库,数据库IP不是配置的127.0.0.1,而是配置的本机IP192.168.0.170.于是出现了以上错误 后来才知道原因。 我的mysql默认有四种连接: root@::1 [email protected] root@localhost sa@%

2017-04-30 15:55:25 813

转载 Why Protocol Buffer So Fast? ----protobuf编码详解

prtotocol buffer是google于2008年开源的一款非常优秀的序列化反序列化工具,它最突出的特点是轻便简介,而且有很多语言的接口(官方的支持C++,Java,Python,C,以及第三方的Erlang, Perl等)。本文从protobuf如何将特定结构体序列化为二进制流的角度,看看为什么Protobuf如此之快。一,示例从例子入手是学习一门新工具的最佳方法。下面我

2017-04-29 13:27:30 439

转载 使用VS+VisualGDB编译调试Linux程序

阅读目录配置虚拟机创建Demo编辑与调试参考资料Linux程序开发变得越来越多,越来越多的程序、产品需要跨平台,甚至有些开源项目只支持Linux平台,所以掌握Linux开发变得越来越重要。但是对于习惯了Windows下的开发,使用了VS这个宇宙第一IDE后,觉得Linux下的纯命令行开发调试,还是有些不习惯,效率有些低(大神除外)。那么能不能用VS来开发调试Linux程序呢

2017-04-27 17:18:24 2104

转载 C/C++ Windows移植到Linux

近期写了有关Socket的程序,需要从windows移植到linux。现把有用的东东收集整理记录下来。 1.头文件windows下winsock.h或winsock2.h;linux下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in.h里已经包含了,可以省了)。 2.初始化window

2017-04-10 17:05:27 3692

转载 mysql 出现 Commands out of sync; you can't run this command now

存储过程中就只有一句普通的select * from ...;第一次调用成功,然后mysql_stmt_close()..再调一次,结果mysql_stmt_prepare()这一句,就出现CR_COMMANDS_OUT_OF_SYNC错误。郁闷啊。。。 ------Solutions------你的代码是什么? ------Solutions------void 

2017-02-28 21:01:07 20322

转载 基于内存,redis,mysql的高速游戏数据服务器设计架构

1、数据服务器详细设计数据服务器在设计上采用三个层次的数据同步,实现玩家数据的高速获取和修改。数据层次上分为:内存数据,redis数据,mysql数据设计目的:首先保证数据的可靠,防止数据丢失,保证数据完整。然后实现数据的高速访问,减少由玩家数量增加对数据服务器性能造成的影响。最后实现运维数据的入库,以及数据持久化。在这个基础上数据服务器不再是一个单一服务器,它

2017-02-16 19:40:52 4408 2

原创 Windows下安装并设置Redis,使用C++操作Redis

Redis对于Linux是官方支持的,安装和使用没有什么好说的,普通使用按照官方指导,很快就可以搞定。但是对于windows版本Redis官方是不支持的。只是微软的人在Redis基础上搞了一个可以支持windows下部署的。可以在这儿下载:https://github.com/MSOpenTech/redis我下载的是redis-3.0版本。下载后编译即可生成相应库文件和exe

2017-02-10 15:57:44 2407 1

原创 VS中加入lib库的几种方法

1、代码中加入: #pragma comment(lib,"your.lib")2、工程中加入:工程右键->属性->配置属性->链接->输入->依赖项3、工程中加入:工程右键->属性->公共属性->引用->增加新引用

2017-02-10 15:17:42 705

golang调试程序dlv.exe(delve)

采用 go get -u github.com/go-delve/delve/cmd/dlv 编译安装,dlv是2021.4.17日最新的版本

2021-04-17

日本人 发明的胡牌算法,比普通的拆解法更好

不懂日文的的,下载后可以翻译下日文。资源包括说明文件和代码文件。当然也可以直接访问原作者的文章地址:http://hp.vector.co.jp/authors/VA046927/mjscore/mjalgorism.html

2018-06-29

quake3源码

quake3源码,内含大量经典算法,代码质量很高,学习一下很有必要

2018-01-24

windows下C++实现的HTTP web 服务器

测试方式(依次在浏览器输入一下内容进行不同情形的测试): 127.0.0.1:9988 127.0.0.1:9988/hehe.html 127.0.0.1:9988/login.html 127.0.0.1:9988/haha?x=10&y=20 也可以下载fiddler工具进行更全面的模拟测试! 1、支持GET/POST方法 2、支持CGI 3、支持错误返回 4、支持chunked数据的解析 缺点: 1、支持的方法不够全面 2、CGI实现不够科学,可以尝试使用FASTCGI 3、不支持https 4、不支持回应chunked数据 感兴趣的同学可以继续完善相关功能.

2017-10-12

libcurl windows版本静态库 动态库 头文件

libcurl

2017-06-05

windows下协程实现(fiber、汇编、非共享栈、共享栈)

windows下协程实现(fiber、汇编、非共享栈、共享栈)

2017-01-24

多处理器编程的艺术

2016-05-23

IOCP 使用WSASend群发消息

http://download.csdn.net/my/uploads 稍加改动

2015-04-28

socket select及IOCP模型的实现

DEBUG目录下: 1.netchatS.exe,netchatSPool.exe(未写完),iocp.exe公用客户端 netchatC.exe 2.msdn_iocpS.exe对应客户端为msdn_iocpC.exe,这是msdn自带的例子,我稍加改动 3.open.bat可批量启动客户端(服务器需先开启,启动数自己可修改),close.bat与之对应 4.config.ini为服务器IP,自行修改

2015-04-24

空空如也

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

TA关注的人

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