- 博客(20)
- 资源 (33)
- 收藏
- 关注
转载 【Boost】boost库asio详解2——strand与io_service区别
无论如何使用,都能感觉到使用boost.asio实现服务器,不仅是一件非常轻松的事,而且代码很漂亮,逻辑也相当清晰,这点上很不同于ACE。使用io_service作为处理工作的work pool,可以看到,就是通过io_service.post投递一个Handler到io_service的队列,Handler在这个io_service.run内部得到执行,有可能你会发现,io_services
2016-02-29 10:13:19 864
转载 【Boost】boost库asio详解1——io_service::run函数无任务时退出的问题
io_service::work类可以使io_service::run函数在没有任务的时候仍然不返回,直至work对象被销毁。[cpp] view plain copy print?void test_asio_nowork() { boost::asio::io_service ios; PRINT_D
2016-02-29 10:09:32 1113
原创 反汇编最基础知识(段寄存器和寄存器的说明)
段寄存器CS(Code Segment):代码段寄存器DS(Data Segment):数据段寄存器SS(Stack Segment):堆栈段寄存器ES(Extra Segment):附加段寄存器 指针寄存器和变址寄存器SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。BP(Base Pointer):基址指针寄存器,可用作SS的一
2016-02-25 14:42:39 1653
原创 汇编跳转指令总结
虽然jmp指令提供了控制转移,但是它不允许进行任何复杂的判断。80x86条件跳转指令提供了这种判断。条件跳转指令是创建循环和实现其他条件执行语句。条件跳转指令检查一个或多个标志位,判断它们是否匹配某个特殊条件(就像setcc指令):如果标志匹配成功,该指令就将控制转移到目标位置;如果匹配失败,CPU忽略该条件跳转指令而继续执行下一条指令。条件跳转指令有一个限制:目标标号的位置必须在跳转指令本身附近
2016-02-25 14:41:06 18614 2
转载 OD快捷键例子
DUMP窗口快捷键功能-------------------------------------------------------------------------------------------1:在DUMP窗口按“CTRL + 鼠标双击”,表示在ASM窗口显示选中的第一个字节开始地址的代码0040399D 89 0D 78 6E 42 00 C1 E1 08 03
2016-02-23 14:31:50 695
原创 反汇编程序导致程序crash的解决思路
曾经发现win7下程序基地址不停地变动,又发现下移代码会导致程序crash,一度怀疑win7系统或者vs编译器是不是做了什么校验机制,专门针对数据逆向者,限制反汇编修改代码,打断了我学习外挂编写的信心和脚步,后来在一骗博客中解决了基地址不停地变动的问题,先一块儿看看这个下移代码导致程序crash的问题,首先写个测试工程,VS2008,Debug版,就有一对话框,点击按钮相应代码如下:void
2016-02-23 11:35:56 1505
转载 tinyxml2解析XML文件
tinyxml2::XMLDocument xmlDoc; tinyxml2::XMLError error = xmlDoc.LoadFile(cfgFile.c_str()); if (error != tinyxml2::XML_NO_ERROR) { throw ConfigurationFileNotFound("Configuration File is failed to o
2016-02-16 17:58:14 864
转载 棋牌游戏服务器架构: 详细设计(三) 数据库设计
主要有3类Database: ServerInfoDB,UserInfoDB和GameDB。 ServerInfoDB主要存储的是游戏列表的信息,UserInfoDB存储玩家的全局信息,而GameDB就是积分以及积分变化情况。下面分别加以描述。1. ServerInfoDB ServerInfoDB主要存储游戏列表信息。主要有以下几个表: 1. Game
2016-02-05 14:05:00 7513
转载 棋牌游戏服务器架构: 详细设计(二) 应用层设计
这里的应用层,指的是CenterServer、LogonServer、LogServer、RoomServer等几个服务器,另外还包括游戏模块的设计。不过游戏模块和前4个服务器的设计很不相同。这里先说一下服务器应用的详细设计。 这上面提到的四4服务器都需要响应客户端(这里的客户端的意思是泛指)的请求,进行数据库操作,同时还要能够配置,以及显示系统运行的状态信息等。这里会采用MVC
2016-02-05 14:04:17 3384 2
转载 棋牌游戏服务器架构: 详细设计(一) 内核设计
内核的几个组件被设计成Service,也就是说这几个模块都要实现如下接口:图1 IService接口 Start方法用来启动服务。 Stop 方法用来关闭服务。 IsService 方法用于查询当前服务是否正在工作。 内核中的几个Service都不能够直接创建,Applications在使用这些Service
2016-02-05 14:03:24 5397
转载 棋牌游戏服务器架构: 部署
先看一下,下面这张可能的部署图吧。图1 系统布署图 在这个图中,可以看到,客户端的形式多种多样,可能是pc上的一个可执行文件,也可能是通过浏览器打开的一个网页,甚至于手机客户端。它们都通过internet连接到游戏服务器。 在这个部署中有1个CenterServer,1个LogServer,3个LogonServer和很多个RoomServer
2016-02-05 14:02:22 4237
转载 棋牌游戏服务器架构: 总体设计
首先要说明的是, 这个棋牌游戏的服务器架构参考了网狐棋牌的架构。网狐棋牌最令人印象深刻的是其稳定性和高网络负载。它的一份压力测试报告上指出:一台双核r的INTEL Xeon 2.8CPU加上2G内存和使用共享100M光纤的机子能够支持5000人同时在线游戏。 在研究其服务器框架后发现,它的网络部分确实是比较优化的。它主要采用了Windows提供的IO完成端口来实现其网络组件。本服
2016-02-05 14:01:16 4250
原创 C++ 学习之函数重载、基于const的重载
今天阅读boost源码发现一个奇怪的问题(enable_shared_from_this.hpp源码)#ifndef BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED#define BOOST_SMART_PTR_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED//// enable_shared_fro
2016-02-05 11:29:39 531
转载 【Boost】boost库中的小工具enable_shared_from_this
使用情景:当类对象被 shared_ptr 管理时,需要在类自己定义的函数里把当前类对象作为参数传给其他函数时,这时需要传递一个 shared_ptr ,否则就不能保持 shared_ptr 管理这个类对象的语义(因为有一个 raw pointer 指向这个类对象,而 shared_ptr 对类对象的这个引用没有计数,很有可能 shared_ptr 已经把类对象资源释放了,而那个调用函数还
2016-02-05 10:29:33 447
转载 拦截聊天记录--Hook技巧简介【原创】
一、 战场环境[兵工场]:VC6.0[兵器谱]: Detours Express 2.1、Windbg6.11、OllyDBG二、 战术分析Hook从字面上理解就是钩子的意思,当然这个钩子不是用来钓鱼的。它是用来挂钩程序用的,程序一但被挂钩就可以改变程序原有的流程。例如Hook之前的流程如下:Hook后的流程如下:拦截XX
2016-02-02 18:40:33 3090
转载 【Boost】boost库中智能指针——intrusive_ptr
boost::intrusive_ptr一种“侵入式”的引用计数指针,它实际并不提供引用计数功能,而是要求被存储的对象自己实现引用计数功能,并提供intrusive_ptr_add_ref和intrusive_ptr_release函数接口供boost::intrusive_ptr调用。下面通过一个具体的例子来说明boost::intrusive_ptr的用法,首先实现一个基类intrus
2016-02-02 11:58:53 523
转载 【Boost】boost库中智能指针——shared_ptr
boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法:#include #include #include class implementation{public:
2016-02-02 11:56:07 515
转载 【Boost】boost库中智能指针——scoped_ptr
boost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用:#include #include #include class implementation{public: ~implementation() { std::cout <<"destroying imp
2016-02-02 11:55:00 412
转载 【Boost】boost库中智能指针——weak_ptr
循环引用:引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下:#include #include #include #include class parent;class children;typedef boost::shared_ptr parent_ptr;typedef boost::shared_pt
2016-02-02 11:52:48 387
转载 【Boost】boost库中智能指针概述
这篇文章主要介绍 boost中的智能指针的使用。 内存管理是一个比较繁琐的问题,C++中有两个实现方案: 垃圾回收机制和智能指针。垃圾回收机制因为性能等原因不被C++的大佬们推崇, 而智能指针被认为是解决C++内存问题的最优方案。1. 定义 一个智能指针就是一个C++的对象, 这对象的行为像一个指针,但是它却可以在其不需要的时候自动删除。注意这个“其不需要的时
2016-02-01 09:45:14 779
SSDTHook实现进程保护
2017-06-09
SkinSharp开发库+百款皮肤+皮肤编辑器
2017-05-24
minhook-1.3.2
2017-05-09
python2.7.8 32
2016-05-25
AStar 算法实例
2015-07-18
Visual Assist X补丁
2015-06-18
cmake-3.14.3-win64-x64.zip
2019-09-05
跨平台高性能TCP服务器框架 &boost;
2018-06-25
网狐IOCP压缩版
2018-06-22
用C++实现的壳
2017-09-14
像加载DLL一样加载EXE
2017-09-10
protobuf-2.61最新版
2017-08-28
Gh0stVC6到VS2010迁移所有问题的解决方法
2017-08-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人