
C++
woshiyuanlei
精通服务器架构,网络通信,数据库操作,熟悉操作系统原理
展开
-
云风skynet服务端框架研究
http://forthxu.com/blog/skynet.htmlskynet是云风编写的服务端底层管理框架,底层由C编写,配套lua作为脚本使用,可换python等其他脚本语言。skynet主要工作是管理注册服务,并开启多线程协调服务之间的调用和通讯。skynet一般用于开发游戏服务端程序。注意:资料开始往github组织账号skynetclub上转移,本转载 2016-04-06 15:51:54 · 5824 阅读 · 0 评论 -
C++11实现一个轻量级的AOP框架
转载自:点击打开链接AOP介绍 AOP(Aspect-Oriented Programming,面向方面编程),可以解决面向对象编程中的一些问题,是OOP的一种有益补充。面向对象编程中的继承是一种从上而下的关系,不适合定义从左到右的横向关系,如果继承体系中的很多无关联的对象都有一些公共行为,这些公共行为可能分散在不同的组件、不同的对象之中,通过继承方式提取这些公共行为就不太合适了。使用AOP还有转载 2018-01-18 19:11:13 · 2257 阅读 · 0 评论 -
Wireshark使用
如果输入Fileter的语法正确,那么将显示未绿色!反之则显示为浅红色!正确:不正确:1、查看TCP协议且端口为8888的包: tcp.port==88882、查看端口+源ip: tcp.port == 80 and ip.src == 192.168.2.1 (同理目的ip是ip.dst)http://www.makelinux.ne原创 2015-09-03 19:48:35 · 2141 阅读 · 0 评论 -
skynet coroutine 运行笔记
skynet coroutine 运行笔记阅读云大的博客以及网上关于 skynet 的文章,总是会谈服务与消息。不怎么看得懂代码,光读这些文字真的很空洞,不明白说啥。网络的力量是伟大的,相信总能找到一些解决自己疑惑的文章。然后找到了这篇讲解 skynet 消息队列的文章(最新的 skynet 消息队列代码已经有更新,变得更简洁易读)。了解了 skynet 消息是如何派发的,转载 2017-09-02 17:47:23 · 478 阅读 · 0 评论 -
使用VisualGDB在windows上编写linux程序(centos)遇到的问题
1、编写多线程程序时,报错: undefined reference to `pthread_create',需要在设置中加上多线程的库.原创 2017-05-13 17:17:20 · 2008 阅读 · 1 评论 -
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 · 9783 阅读 · 0 评论 -
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 · 3807 阅读 · 0 评论 -
VC使用ADO访问sql server数据库
软件:vs2010、sql server2005代码如下:#include #include using namespace std;//1、添加对ADO的支持#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")原创 2015-05-31 13:37:55 · 4048 阅读 · 0 评论 -
惊艳的时间轮定时器
http://www.cnblogs.com/zhongwencool/p/timing_wheel.html问题引入:游戏里面每个Player身上有很多buffs,在每一个tick(最小时间段)都要去检查buff里面的每一个buff是不是过期,产生的效果如何,造成在每个tick里面都去遍历一个长list,明显很不好。怎么优化?1.原始模型:转载 2016-07-15 15:26:39 · 2987 阅读 · 0 评论 -
高性能服务开发之定时器
高性能服务开发之定时器 在开发高性能服务器中,定时器总是不可或缺的。 常见的定时器实现三种,分别是:排序链表,最小堆,时间轮。 之前用的定时器是基于最小堆的,在定时器数量不多时可以使用, 目前公司用的框架中的定时器是基于简单时间轮的,但是为了支持大范围的时间,每个齿轮的所维护的链表为有序链表,每次插入时先mod出spoke,再从头遍历链表以便将定时器插入到合适位置, 所以转载 2016-07-14 11:17:57 · 764 阅读 · 0 评论 -
自己实验C++
VS2013开发环境下#include <iostream>#include <memory>#include <map>#include <vector>#include <excpt.h>using namespace std;struct tagTest{ int m_nA;};class CTest{public: CTest(){ cout << "CTest()" << endl; }};void fun(int &value){ cout << "l原创 2016-03-29 10:09:42 · 498 阅读 · 0 评论 -
C++捕获除0和空指针异常
windows环境下才行:除0异常[cpp] view plain copy__try { int y = 0; int x = 1 / y; } __except(GetExceptionCode() == EXCEPTION_INT_转载 2016-04-06 15:08:02 · 6451 阅读 · 0 评论 -
CAF(C++ Actor Framework)介绍
1. 描写.caf是1个actor模型的开源编程框架, 强c++11风格的实现, 早先的名字其实不叫CAF, 而是CPPA. 改名的时间产生在版本(0.9 >> 0.10). 而最近的版本是0.11.2, 从文档上看, caf的实现参考了akka和erlang. 默许的actor调度是基于线程池方式, 而不是协程. 因此更像akka. 由于caf是基于c++的实现,转载 2016-04-28 17:38:19 · 5354 阅读 · 0 评论 -
C++11中的std::function
http://www.jellythink.com/archives/771看看这段代码先来看看下面这两行代码:std::functionvoid(EventKeyboard::KeyCode, Event*)> onKeyPressed;std::functionvoid(EventKeyboard::KeyCode, Event*)> onKeyRelea转载 2016-04-13 16:25:12 · 374 阅读 · 0 评论 -
Effective STL Item 6: Be alert for C++’s most vexing parse.
为什么这段 c++ 代码需要加这对括号才正确运行,是编译器问题吗?正确运行的代码:std::ifstream fin("test.txt");std::string str((std::istreambuf_iterator(fin)), // 这里多了一对括号 std::istreambuf_iterator());cout << str;错原创 2016-04-13 15:15:41 · 555 阅读 · 0 评论 -
skynet服务的本质与缺陷
http://www.2cto.com/kf/201511/448793.html转载 2016-04-08 19:01:39 · 527 阅读 · 0 评论 -
select, iocp, epoll,kqueue及各种I/O复用机制
http://www.cnblogs.com/xuxm2007/archive/2011/08/15/2139808.htmlhttp://blog.youkuaiyun.com/heyan1853/article/details/6457362 首先,介绍几种常见的I/O模型及其区别,如下:blocking I/Ononblocking I转载 2016-04-06 18:03:22 · 485 阅读 · 0 评论 -
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 · 1426 阅读 · 0 评论