自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(39)
  • 资源 (12)
  • 收藏
  • 关注

原创 开源游戏服务器框架NFShmServer 简介(二)

[**NFPluginLoader 服务器的插件加载引擎**](https://github.com/yigao/NFShmServer/wiki/Chapter-1:NFPluginLoader,Plugin,Module)* [**NFCommPlugin 构建服务器大厦的基础引擎**](https://github.com/yigao/NFShmServer/wiki/Tutorial:-NFCommPlugin)架构采用分成架构,系统分为架构层,服务器框架层,具体的游戏业务层。

2024-01-13 12:03:45 349

原创 开源游戏服务器框架NFShmServer 简介(一)

这是一个快速、可扩展、分布式的C++游戏服务器引擎/框架,包括actor库、网络库,可用作实时多人游戏引擎(MMO RPG/MOBA),支持C#/Lua script/Unity3d、Cocos2dx和计划支持虚幻。

2024-01-04 16:39:20 962

原创 C++ 开源游戏服务器框架

1.NFShmServer 作者:gaoyi。技术开发群:QQ:762414765。2.moon:ua多线程actor架构。:lua多线程actor架构。

2024-01-04 16:06:31 451

原创 共享内存STL

部分公司,主要是腾讯出来创业搞出来的公司,使用共享内存来解决C++服务器崩溃后数据丢失和C++热更问题。但是使用共享内存创建类,缺乏stl之类的容器支持。导致使用共享内存成本太高。开源共享内存游戏服务器。

2024-01-04 15:57:46 361

原创 南京证券

         

2018-07-13 11:18:17 301

转载 一种自动反射消息类型的 Google Protobuf 网络传输方案

陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice  t.sina.com.cn/giantchen 这篇文章要解决的问题是:在接收到 protobuf 数据之后,如何自动创建具体的 Protobuf Message 对象,再做的反序列化。“自动”的意思是:当程序中新增一个 protobuf Message 类型时,这部分代码不需要修改,不需要自己去注册消息...

2018-06-06 15:28:23 576

转载 EPOLL的内核实现

1. select/poll的缺点     A. 每次调用时重复的从用户态读入参数     B. 每次调用时全量的扫描文件描述符     C. 每次调用开始,将进程加入到每个文件描述符的等待队列,在调用结束后又把进程从等待队列中删除。     D. 在不修改内核的情况下,select最多支持1024个文件描述符。     2. 文件系统中的一些重要结构在linux中,进程通过file_struct...

2018-05-31 22:20:22 246

转载 EPOLL内核源代码实现原理分析

EPOLL内核源代码实现原理分析epoll的实现主要依赖于一个迷你文件系统:eventpollfs。此文件系统通过eventpoll_init初始化。在初始化的过程中,eventpollfs create两个slub分别是:epitem和eppoll_entry。epoll使用过程中有几个基本的函数分别是epoll_create,epoll_ctl,epoll_wait。涉及到四个重要的数据结构:...

2018-05-31 22:18:42 1718

转载 EPOLL的理解和深入分析

搞Linux 服务器开发的人肯定了解 select、poll、epoll,他们都是基于事件驱动的IO多路复用技术,而他们之间的区别网上已经有很多的文章了,大家可以去详细的阅读,我在这里主要想写写我对epoll的底层实现的理解。首先还是先说说 select、poll相比与epoll来说他们效率低下的原因吧:select、poll、epoll是Linux平台下的IO多路复用技术,适合用来管理大量的文件...

2018-05-31 22:09:04 903 2

转载 非常全的VsCode快捷键

按 Press功能 FunctionCtrl + Shift + P,F1显示命令面板 Show Command PaletteCtrl + P快速打开 Quick OpenCtrl + Shift + N新窗口/实例 New window/instanceCtrl + Shift + W关闭窗口/实例 Close window/instance基础编辑 Basic editing按 Press功...

2018-05-31 20:46:37 590

转载 IO多路复用之epoll总结

1、基本知识  epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口  epoll操作过程需要三个接口,分别如下:#include <sys...

2018-05-31 20:38:05 130

转载 高并发网络编程之epoll详解

在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。本文便来介绍epoll的实现机制,并附带讲解一下select和poll。通过对比其不同的实现机制,真正理解为何epoll能实现高并发。select()和p...

2018-05-31 10:00:51 154

转载 Libevent参考手册:使用libevent的DNS:高层和底层功能

译自http://www.wangafu.net/~nickm/libevent-book/Ref9_dns.htmllibevent提供了少量用于解析DNS名字的API,以及用于实现简单DNS服务器的机制。我们从用于名字查询的高层机制开始介绍,然后介绍底层机制和服务器机制。注意libevent当前的DNS客户端实现存在限制:不支持TCP查询、DNSSec以及任意记录类型。未来版本的libeven...

2018-05-31 10:00:38 540

转载 Libevent参考手册:连接监听器:接受TCP连接

译自http://www.wangafu.net/~nickm/libevent-book/Ref8_listener.htmlevconnlistener机制提供了监听和接受TCP连接的方法。本章的所有函数和类型都在event2/listener.h中声明,除非特别说明,它们都在2.0.2-alpha版本中首次出现。1 创建和释放evconnlistener接口两个evconnlistener_...

2018-05-31 10:00:28 383

转载 Libevent参考手册:evbuffer:缓冲IO实用功能

译自http://www.wangafu.net/~nickm/libevent-book/Ref7_evbuffer.htmllibevent的evbuffer实现了为向后面添加数据和从前面移除数据而优化的字节队列。evbuffer用于处理缓冲网络IO的“缓冲”部分。它不提供调度IO或者当IO就绪时触发IO的功能:这是bufferevent的工作。除非特别说明,本章描述的函数都在event2/b...

2018-05-30 22:04:36 474

转载 Libevent参考手册:evbuffer:缓冲IO实用功能

译自http://www.wangafu.net/~nickm/libevent-book/Ref7_evbuffer.htmllibevent的evbuffer实现了为向后面添加数据和从前面移除数据而优化的字节队列。evbuffer用于处理缓冲网络IO的“缓冲”部分。它不提供调度IO或者当IO就绪时触发IO的功能:这是bufferevent的工作。除非特别说明,本章描述的函数都在event2/b...

2018-05-30 22:03:21 558

转载 Libevent参考手册:Bufferevent:高级话题

译自http://www.wangafu.net/~nickm/libevent-book/Ref6a_advanced_bufferevents.html 本章描述bufferevent的一些对通常使用不必要的高级特征。如果只想学习如何使用bufferevent,可以跳过这一章,直接阅读下一章。1 成对的bufferevent有时候网络程序需要与自身通信。比如说,通过某些协议对用户连接进行隧道操...

2018-05-30 22:02:16 293

转载 libevent参考手册第六章:bufferevent:概念和入门

很多时候,除了响应事件之外,应用还希望做一定的数据缓冲。比如说,写入数据的时候,通常的运行模式是:l 决定要向连接写入一些数据,把数据放入到缓冲区中l 等待连接可以写入l 写入尽量多的数据l 记住写入了多少数据,如果还有更多数据要写入,等待连接再次可以写入这种缓冲IO模式很通用,libevent为此提供了一种通用机制,即bufferevent。bufferevent由一个底层的传输端口(如套接字)...

2018-05-30 22:01:31 372

转载 libevent参考手册第五章:辅助类型和函数

译自http://www.wangafu.net/~nickm/libevent-book/Ref5_evutil.html<event2/util.h>定义了很多在实现可移植应用时有用的函数,libevent内部也使用这些类型和函数。1 基本类型1.1 evutil_socket_t在除Windows之外的大多数地方,套接字是个整数,操作系统按照数值次序进行处理。然而,使用Windo...

2018-05-30 22:00:22 202

转载 翻译:libevent参考手册第四章:与事件一起工作

译自http://www.wangafu.net/~nickm/libevent-book/Ref4_event.htmllibevent的基本操作单元是事件。每个事件代表一组条件的集合,这些条件包括:v 文件描述符已经就绪,可以读取或者写入v 文件描述符变为就绪状态,可以读取或者写入(仅对于边沿触发IO)v 超时事件v 发生某信号v 用户触发事件所有事件具有相似的生命周期。调用libevent函...

2018-05-30 21:59:20 255

转载 翻译:Libevent参考手册第三章:与事件循环一起工作

译自http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html1 运行循环一旦有了一个已经注册了某些事件的event_base(关于如何创建和注册事件请看下一节),就需要让libevent等待事件并且通知事件的发生。接口默认情况下,event_base_loop()函数运行event_base直到其中没有已经注册的事件为止。执行循...

2018-05-30 21:58:01 178

转载 libevent参考手册第二章:创建event_base

译自http://www.wangafu.net/~nickm/libevent-book/Ref2_eventbase.html 使用libevent函数之前需要分配一个或者多个event_base结构体。每个event_base结构体持有一个事件集合,可以检测以确定哪个事件是激活的。如果设置event_base使用锁,则可以安全地在多个线程中访问它。然而,其事件循环只能运行在一个线程中。如果需...

2018-05-30 21:55:42 220

转载 Libevent参考手册第一章:设置libevent

翻译自:http://www.wangafu.net/~nickm/libevent-book/Ref1_libsetup.htmllibevent有一些被整个进程共享的、影响整个库的全局设置。必须在调用libevent库的任何其他部分之前修改这些设置,否则,libevent会进入不一致的状态。1 Libevent中的日志消息libevent可以记录内部错误和警告。如果编译进日志支持,还会记录调试...

2018-05-30 21:53:42 439

转载 Libevent参考手册:前言

翻译自:http://www.wangafu.net/~nickm/libevent-book/Ref0_meta.html转自:http://blog.sina.com.cn/s/blog_56dee71a0100q7j6.html1  从一万英尺外看LibeventLibevent是用于编写高速可移植非阻塞IO应用的库,其设计目标是:v 可移植性:使用libevent编写的程序应该可以在lib...

2018-05-30 21:50:53 288

原创 socket通信简介

“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket...

2018-05-29 23:45:37 5160

转载 史上最全的maven的pom.xml文件详解

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0...

2018-05-29 14:14:48 162

转载 安装 Maven

1 安装 Maven需要事先安装所依赖的 JDK,详见文章:Linux/Windows JDK 的安装1.1 下载与安装(9M)1234### http://maven.apache.org/download.cgiwget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.t...

2018-05-29 12:51:53 229

转载 Jenkins+Github持续集成

配置前要求:1.Jenkins已经安装Github插件2.Jenkins服务器已经拥有一个公网IP地址,由于我是本地搭建的,所以我用Ngrok实现内网穿透。(一)、全局配置先配置Github连接的一些信息,打开Jenkins首页控制台--》系统管理--》系统设置选择Github--》添加Github Server选择Add输入github的账号与密码然后点击Add配置Jenkins在Hook UR...

2018-05-29 12:48:59 2064

转载 Jenkins 持续集成综合实战

Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。本文以 CentOS7 环境为例,总结了 Jenkins 的安装与配置、邮件功能使用,并接入阿里巴巴的著名开源项目 fastjson,以此演示 Java 项目(SVN+Maven)中 FindBugs/CheckStyle/PMD 等常用插件的使用、单元...

2018-05-29 10:34:49 376

转载 添加用户到sudoers

** is not in the sudoersfile.  This incident will bereported.”  (用户不在sudoers文件中……)处理这个问题很简单,但应该先理解其原理再操作首先要明白root的密码一般用户是不应改知道的,但一般用户有时可能要用到root的一些权限。这里就有了一个 /etc/sudoers文件,用来保存一些用户,使这些用户可以通过sudo命令来暂时...

2018-05-28 22:21:10 34359 1

转载 centos7安装mysql5.7

安装环境:CentOS7 64位 MINI版,安装MySQL5.71、配置YUM源在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/# 下载mysql源安装包shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm# ...

2018-05-28 22:16:36 69

转载 sonarque插件C++安装

添加插件下载c++代码分析插件移动到sonar插件目录代码检测规则配置创建Quality Profiles添加现有规则参考添加插件下载c++代码分析插件sonar-cxx移动到sonar插件目录# mv sonar-cxx-plugin* /etc/sonarqube-5.6.7/extensions/plugins1重启sonar服务 进入Update Center查看localhost:900...

2018-05-28 22:03:30 854

转载 如何在github利用Travis CI 对项目做持续集成测试

前言一个项目如何保证代码质量是开发中非常重要的环节,对于开源项目来说更是如此,因为开源项目要面对的是来自不同水平开发者提交的代码。所以围绕开源做持续集成(Continuous Integration)变得越来越重要,而目前使用最广泛的免费CI工具当数Travis CI我们可以在github中常见到这些图标,就是集成测试的效果点链接,还可以看成集成测试的过程Travis CI能做的最主要工作是自动运...

2018-05-28 21:56:40 640

原创 利用Travis CI+SonarCloud为自己GitHub上的开源项目建立可持续集成

怎么使用Travis CI我就不说了,自己百度,这里主要讲的是利用Travis CI + GitHua + SonarCloud来实现自动编译,自动分析,就可观看自己项目的持续改进

2018-05-28 21:52:09 637

原创 SonarQube代码质量管理平台C++插件sonar-cxx的安装

SonarQube的问题,对于C/C++用户来说,SonarQube的默认C/C++插件CFamily是收费的,让人绝望啊,一度让我放弃了自己搭建SonarQube服务器, 改为了使用Travis CI持续集成自己的项目,然后让Travis CI转SonarCloud来实现自己的对项目的可持续检查监督。SonarCloud相当于一个公有的国际化的分布式SonarQube,针对全体githua上的项...

2018-05-28 21:06:08 12051 6

原创 将博客搬至CSDN

将博客搬至CSDN

2018-05-28 20:09:00 10

转载 SonarQube代码质量管理平台安装与使用

Sonar简介Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测sonarQube能带来什么?Developers' Seven Deadly Sins1.糟糕的复杂度分布  文件、类、方法等,如果复杂度过...

2018-05-28 20:05:25 216

原创 Linux中 SonarQube代码质量管理平台以及C++插件安装

SonarQube是管理代码质量一个开源平台,可以快速的定位代码中潜在的或者明显的错误。 SonarQube安装  1、环境准备      (1)sonarQube 下载地址https://www.sonarqube.org/downloads/      注:官网显示目前最新版本是7.1      (2)sonarQube Scanners 下载地址http://docs.sonar...

2018-05-28 12:24:00 13

原创 遇到一个很古怪的问题,C++类static const成员的初始化

在我的文件里有这class NFDuration, NFDuration.h里是这样的:// A Duration represents the elapsed time between two instants// as an int64 nanosecond count. The representation limits the// largest representable du...

2018-05-27 21:49:00 15

whisper_pay.zip

单商户官方版在线客服完全开源系统PC+公众号+APP+H5+小程序客服WHISPER

2019-10-28

scons-2.3.0.win32-py2.7.exe

scons-2.3.0.win32-py2.7.exe

2013-06-08

PyUSB-1.6.win32-py2.7.exe

PyUSB-1.6.win32-py2.7.exe

2013-06-08

pyserial-2.6.win32-py2.7.exe

python2.7的串口库,好东西没话说 python2.7的python2.7的串口库,好东西没话说串口库,好东西没话说

2013-06-08

pymedia-1.3.7.3.win32-py2.7.exe

pymedia安装程序,好东西不解释 pymedia安装程序,好东西不解释 pymedia安装程序,好东西不解释

2013-06-08

perl写的makefile解析器

perl写的makefile解析器,方便分析makefile语法,自己写一个

2013-05-27

java写的makefile解析器

java写的makefile解析器,共大家分析makefile语法用

2013-05-27

scan使用文档

主要是介绍使用scan编译工具的使用文档,该工具类似于makefile

2013-05-27

SCON工具源码

前言 make 这个工具自上个世纪 70 年代 Stuart Feldman 在贝尔实验室开发出以来,就一直是类 UNIX 程序员的最爱之一。通过检查文件的修改时间,make 工具可以知道编译目标文件所要依赖的其他文件。在复杂的项目中,如果只有少数几个文件修改过,make 工具知道仅仅需要对哪些文件重新编译就可以确保目标程序被正确的编译链接。这样做的好处就是在编译中,不仅可以节省大量的重复输入,还可以确保程序可以被正确的链接,缩短编译的时间。虽然如此,但是为 make 工具编写建造规则却不是一件容易的事。它复杂的配置规则,即使是有经验的开发者也望而生畏。make 工具的许多替代品便因此而诞生,SCons 就是是其中之一。SCons 是一个用 Python 语言编写的类似于 make 工具的程序。与 make 工具相比较,SCons 的配置文件更加简单清晰明了,除此之外,它还有许多的优点。 -------------------------------------------------------------------------------- 回页首 SCons 简介 SCons 是一个开放源代码、以 Python 语言编写的下一代的程序建造工具。它最初的名字是 ScCons, 基于由 perl 语言编写的 Cons 软件开发而成,它在 2000 年 8 月获得了由 Software Carpentry 举办的 SC 建造比赛的大奖。现在 ScCons 已经被改名为 SCons,目的是为了表示不再与 Software Carpentry 有联系,当然,还有一个目的,就是为了更方便的输入。 作为下一代的软件建造工具,SCons 的设计目标就是让开发人员更容易、更可靠和更快速的建造软件。与传统的 make 工具比较,SCons 具有以下优点: 使用 Python 脚本做为配置文件 对于 C,C++ 和 Fortran, 内建支持可靠自动依赖分析 . 不用像 make 工具那样需要执行"make depends"和"make clean"就可以获得所有的依赖关系。 内建支持 C, C++, D, Java, Fortran, Yacc, Lex, Qt,SWIG 以及 Tex/Latex。用户还可以根据自己的需要进行扩展以获得对需要编程语言的支持。 支持 make -j 风格的并行建造。相比 make -j, SCons 可以同时运行 N 个工作,而不用担心代码的层次结构。 使用 Autoconf 风格查找头文件,函数库,函数和类型定义。 良好的夸平台性。SCons 可以运行在 Linux, AIX, BSD, HP/UX, IRIX, Solaris, Windows, Mac OS X 和 OS/2 上。 -------------------------------------------------------------------------------- 回页首 安装 SCons SCons 支持多种操作系统平台,并为各个系统制作了易于安装的文件,因此在各个系统平台上的安装方法不尽相同,在 SCons 的官方网站上可以查每个平台的具体安装方法。 如果 SCons 没有为你的系统制作相应的安装包,你也可以下载 SCons 的源代码,直接进行安装。 首先,从 SCons 的网站上下载最新的 SCons 源代码包(目前 SCons 的最新版本是 2.0.1)。其次,解压下载的源代码。视下载的源代码包的格式不同而有不同的方法,在 Windows 平台上,可是使用 winzip 或者其他类似的工具解压。在 Linux 平台上,对于 tar 包,使用 tar 命令进行解压,如: $ tar -zxf scons-2.0.1.tar.gz 然后切换进入解压后的目录进行安装,如 $ cd scons-2.0.1 $ sudo python setup.py install 命令执行如果没有错误,那么 scons 就被安装到系统上了。对于 Linux 来说,scons 会默认安装到 /usr/loca/bin 目录下,而在 Windows 平台上,则会被安装到 C:\Python25\Scripts 下。 -------------------------------------------------------------------------------- 回页首 使用 SCons 在 SCons 安装完成后,我们就可以使用 SCons 来建造我们的程序或者项目了。像很多编程书籍那样,在这里我们也通过一个简单的 helloscons 例子来说明如何使用

2013-05-27

python精要参考

python精要参考

2013-05-14

opencore-amr编解码器

opencore-amr是一个AMR的编解码库,使用价值很好,好好分析就能掌握!

2013-04-16

AMR协议规范

AMR使用的协议规范,英文版,要掌握AMR,最好是看原始的协议

2013-04-16

空空如也

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

TA关注的人

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