自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

coderchen

端游服务器开发[勤能补拙]

  • 博客(105)
  • 资源 (32)
  • 收藏
  • 关注

转载 C++预编译头文件

http://blog.csdn.net/btooth/article/details/980251许多初学 VC 的朋友也许都为那么一个问题困扰过:    为什么所有的 cpp 都必须 #include "stdafx.h"    也许请教了别的高手之后,他们会告诉你,这是预编译头,必须包含。可是,这到底是为什么呢?预编译头有什么用呢?    这得从头文件

2014-12-10 16:14:28 1255

转载 浅谈GCC预编译头技术

原文:http://blog.csdn.net/wallwind/article/details/7676019文/jorge——谨以此文,悼念我等待MinGW编译时逝去的那些时间。其 实刚开始编程的时候,我是丝毫不重视编译速度之类的问题的,原因很简单,因为那时我用BASICA。后来一直用到C++ Builder,尽管Borland的广告无时无刻不在吹嘘其编译速度,我却

2014-12-10 16:12:52 2727 1

原创 编译器的概述

首先特别感谢网易公司,网易公司提供的云课堂,公开课实在是太好了,有了这些东西我们这些渣渣学校的也可以学习国内外名校的课程了。由于我在大学学习的网络工程,大学的时候自己也too young,学校没教《编译原理》这门课,自己也没主动接触过,看到许多大牛都很推荐学习《编译原理》这门课堂(程序员的三大浪漫之一:操作系统,编译原理,图形学),所以我也就很关注网易云课堂的这门课,最近这门课终于开了,所以把

2014-12-10 14:49:45 2549 3

转载 最小生成树---Kruskal算法

原文地址:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html1.概览Kruskal算法是一种用来寻找最小生成树的算法,由Joseph Kruskal在1956年发表。用来解决同样问题的还有Prim算法和Boruvka算法等。三种算法都是贪婪算法的应用。和Boruvka算法不同的地方是,Kruska

2014-11-29 11:57:51 1301

转载 最小生成树---Prim

原文地址:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.htmlPrim算法1.概览普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边

2014-11-29 11:39:06 1291

原创 读TrinityCore源码有感

好吧,这个标题确实吹得有点大了。这几天趁下班回家简单调试了TrinityCore,读了部分代码,简单写下自己的看法。我毕业也将近2年而已,经历的公司也不多,所以可能观点不对不全面,但重在探讨。1:关于服务器端能否用STL我目前经历的两家游戏公司,服务器端都是自己造的STL,说难听点,就是自己造的极其劣质的containers,不外乎array,list,hash,tree这四种,用起来也是

2014-11-28 09:35:49 9594

原创 TrinityCore3.3.5.57服务器离线无法登录bug探究

接上文,我按照官网教程摸索着启动了游戏

2014-11-24 16:19:47 5812 5

原创 TrinityCore3.3.5环境搭建

说起TrinityCore,可能知道的人不多,但是说起MaNGOS(芒果)

2014-11-24 15:52:08 22420 3

原创 next_permutation原理剖析

最近刷leetcode的时候遇见next permutation这道题,感觉挺有意思的一个题目,

2014-11-17 20:49:34 16594 6

转载 Next permutation: When C++ gets it right

The Next Number ProblemSuppose you have a fixed list of digits chosen from the range 1..9. What numbers can you make with them? You’re allowed as many zeros as you want. Write the numbers in incre

2014-11-17 11:31:19 4260

原创 Sunday算法---简单高效的字符串匹配算法

说到字符串匹配算法,估计大伙li

2014-11-06 20:54:13 18475 2

原创 链表排序---由底至顶的归并排序更优雅

在leetcode中有这么一道题click me,

2014-11-02 10:04:06 1403

原创 leetcode链表问题总结

最近一周下班时间在做leetcode上xi

2014-10-28 19:59:33 3412 1

转载 CEGUI数据文件

yCEGUI所用的数据文件除了少数的特殊情况外都是XML格式的。但是,为了清晰的说明数据文件代表什么类型的资源,数据文件并不是以“.xml”作为后缀,而是用更有意义的后缀名。比如,Imageset的后缀名是.imageset,Font的后缀名是.font,等等。下面将对每种文件类型做个简要的说明,以后将对它们进行更深入的讨论。Imageset这么说吧,通常,为了提到效率,我

2014-10-23 10:13:07 1145

原创 Linked List Cycle

问题描述:

2014-10-23 09:10:11 1027

原创 C++编译链接的那些小事

最近,有同事向我多次问及C++关于编译链接方面的问题,包括如下:1:什么样的函数以及变量可以定义在头文件中2:extern "C"的作用3:防止重复包含的宏的作用4:函数之间是怎么链接起来的我认为,这些问题不难,书上基本上都有,但要是没有真正思考过,就凭死记硬背,也就是只能“嘴上说说”而已,遇到问题还真棘手,所以我觉得有必要说一下。C/C++的编译链接过程其实,

2014-01-22 21:00:10 10368 4

原创 sh脚本中获取脚本自己的路径

方法一:适用于脚本不是一个链接文件的情况#!/bin/bashecho `readlink /proc/$$/fd/255`echo $(dirname `readlink /proc/$$/fd/255`)当脚本是一个链接文件的时候,这种方法can't work。方法二:适用于任何情况#!/bin/bashcd `dirname $(pwd)/$0`pwd这种是万

2014-01-12 10:00:19 4591 2

原创 让时间用的更有价值

今天上午,运营想让我对面的php哥们修改下内部oa,这哥们应该事比较多,就说了句:“现在花时间去修改这个东西不值得”。我倒是对这句话产生了兴趣,也反思了下自己,究竟时间怎么利用才有价值?我曾经为了弄明白makefile的自动推导依赖机制花费了好几天,虽然弄明白了,但是实际作用也并不大。我也花了大量时间去学习语言上的边边角角,和别人聊起来的时候感觉很酷,但实际呢?我也盲目

2014-01-03 21:15:21 1260 1

原创 STL之traits技法

traits汉译为特性,形状,暂且知道这是于特性相关的就OK。後捷老师说“源码面前,了无秘密”,所以逼人打算直面晦涩的源码,一探究竟。现在,先来想象一个简单的场景,有一个函数advance(iterator,step),这个函数可以使迭代器iterator前进step个距离(step也可以为负),这里暂时不考虑step为负的情况。那么一个机器粗烈的实现可能是下面这样的templat

2014-01-01 10:28:40 1466

原创 跳跃表(续)

http://blog.csdn.net/qq575787460/article/details/16371287上一篇引入了跳跃表的介绍,并且测试了跳跃表的插入和查找效率。可以看到在大量数据中效率明显高于红黑树。(当然带来的空间的巨大浪费)。那么跳跃表为什么会快呢?下来看一个生活中的例子。如图,A--G分别代表250路公交车经过的车站。有特快,快和慢3条线路。特快的只

2013-11-23 12:18:41 1675

原创 跳跃表

如何在大量元素中去查找某个元素。例如在下面的“大量元素”的数组中

2013-11-17 18:38:00 7754 1

转载 C_INCLUDE_PATH,LIBRARY_PATH,LD_LIBRARY_PATH

原文:http://blog.csdn.net/leechee_1986/article/details/8099408利用系统的环境变量。对于头文件的搜索路径:C_INCLUDE_PATH=;export C_INCLUDE_PATH对于库文件的搜索路径:LIBRARY_PATH=;export LIBRARY_PATH对于链接程序

2013-11-07 17:58:06 1621

原创 traits编程技巧

最近在学习《STL源码剖析》,对书中介绍的traits很有感。搜到的前辈的博客,这篇博文写的很好,感谢。自己在写一下,加深自己的理解。举例:加入我们现在有一个算法,可以对传入的迭代器前进N步。template void move_n_step(ITERATOR &itor, int n){ for (int i = 0; i < n; i++) itor

2013-11-06 22:20:20 1194

原创 读libevent源码学习网络库对定时器和信号的处理

读了一下libevent的部分代码,主要是timer,signal,epoll相关的,学习了网络库如何处理定时器事件和信号。大多数网络模块的库应该都是这样实现的,很巧妙。首先说timer,libevent通过一个小根堆结构来保存定时事件,堆顶元素是最近即将超时的时间,例如右5个定时器,分别在2S,1S,4S,7S,8S后超时,那么堆顶的元素就是1S的定时器,这有什么用呢?因为不

2013-11-06 21:27:42 1790

原创 Nagle算法与ACK延迟算法

昨天在小组的技术分享上,组长教我们怎样去调试一个服务器程序,收获很大。1:ping 典型的 80或者23 这些端口,看看机器还活着么2:telnet 看看我们的程序端口开着么(当然前提是TCP)3:tcpdump 抓包,可以看看网络包的接受和发送速度,对于文本协议的调试更方便了。啊。扯远了,主要还是在抓包的时候,应该四次挥手的TCP我们看到了3次,其中被动关闭方和FIN和对

2013-11-02 16:49:20 1922

原创 do{...}while(0)

最近在读libevent源码的时候,发现好多do{...}while(0)类似的宏,百思不得其解,今天在逛博客园的时候,突然发现有位兄弟的博文解释了,如醍醐灌顶。原位地址:点击打开链接

2013-10-25 14:13:20 899

转载 用条件变量实现事件等待器的正确与错误做法

原文 :陈硕TL;DR 如果你能一眼看出 https://gist.github.com/chenshuo/6430925 中的那 8 个 Waiter classes 哪些是对的哪些是错的,本文就不必看了。前几天,我发了一条微博 http://weibo.com/1701018393/A7FrW7ZVd ,质疑某本书对 Pthreads 条件变量的封装是错的,因为它没有把

2013-10-11 14:19:23 941

原创 listen函数中backlog的含义

TCP中服务器端调用listen函数监听客户端的连接,listen函数的第二个参数backlog到底是什么意思呢?可以这样理解:服务器端TCP内核模块维护有2个队列,我们称之为A,B吧。客户端向服务器端connect的时候,挥发送带有SYN标志的包(第一次握手),服务器收到客户端发来的SYN时,向客户端发送SYN ACK确认(第二次握手),此时TCP内核模块把客户端连接加入到A

2013-10-10 22:09:24 4605 2

转载 TCP三次握手连接及seq和ack号的正确理解

原文:http://blog.chinaunix.net/uid-25513153-id-187780.html三次握手Three-way Handshake一个虚拟连接的建立是通过三次握手来实现的1. (B) –> [SYN] –> (A)假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchronize) 标记的包,告诉A请

2013-10-09 09:26:02 1492

原创 I/O多路复用 select模型【续集】

上一篇文章介绍了基本的select模型,使用select模型编写了一个功能超级简单的echo服务器,可以同时监听一个套接口(用户接受客户端连接)和标准输入。对于每一个客户端连接都是输出客户端的内容后,立马终止与客户端的连接,这一片文章中,同时监听标准输入,监听的套接口与已连接的客户端。srv.c#include #include #include #include #include

2013-05-26 20:42:16 1110

原创 I/O多路复用 select模型

情景分析:现在要编写一个echo服务器,就是接收每个客户端的链接,打印出客户端发送的一串文本。同时,再增加一项功能,可以处理标准输入。所以,服务器必须能够响应两个独立的I/O事件:1:来自客户端发起的socket连接2:标准输入也就是问题转化为:如何同时监听多个文件描述符?如何同时监听多个文件描述符?解决这种问题的办法之一就是:I/O多路复用。什么是I/O多路复用?简单

2013-05-22 23:50:48 1956 3

原创 僵尸进程

什么是僵尸进程?当一个子进程终止的时候,父进程存在但是没有调用wait或这waitpid获取子进程的退出状态。这样,这个子进程就不能完全从内存中清楚,从而变成僵尸状态。子进程自己为什么不完全退出呢?因为子进程结束时,父进程可能需要获取子进程的退出状态,进程id等信息,这些信息被保存在一个结构体中,父进程通过调用wait或者waitpid可以获取这些信息,同时把子进程从内存中完全清除。

2013-05-17 21:52:12 1078

原创 Makefile定义变量 = 和 := 的区别

Makefile中变量的定义有两种方式。第一种: =例如name=cheninfo=$(name)第二种: :=例如name=cheninfo:=$(name)这两种定义变量的区别主要是对引用的其它变量的展开时机不同。第一种方式:使用=name=cheninfo=$(name)在这种方式中,info的值就是“$(name)”这个字符串,它的展开一

2013-04-12 14:11:16 1517

原创 Makefile文件的重建过程

最近在理解Makefile自动推导依赖关系时,总感觉理解不动。原因是对Makefile的重建过程不清楚。所以学习一下。感谢《GNU make中文手册》。下面时书中makefile文件重建的原文:Makefile 可由其它文件生成,例如 RCS 或 SCCS 文件。如果 Makefile 由其它文件重建,那么在 make 在开始解析这个 Makefile 时需要重新读取更

2013-04-11 22:00:11 2287

原创 让Makefile自动推导依赖关系

用到4个文件:hello.h hello.cpp main.cpp Makefilehello.h#ifndef MAKE_FILE_TEST#define MAKE_FILE_TESTvoid hello();#endifhello.cpp#include #include "hello.h"using namespace std;void hello(){

2013-04-11 14:00:34 2815

原创 Makefile变量---简单的文本替换

这次的试验,只有一个Makefile,别的没有任何文件,通过一个伪目标show来演示变量的使用,好奇葩啊。cc=gccsrc=a.c b.c.PHONY:showshow: @echo $(cc) @echo $(src)执行make show,将会显示gcca.c b.cso easy。。。echo前面为什么要加上@呢?.PHONY:reaso

2013-04-09 18:22:59 3474

原创 伪目标.PHONY

这次只有一个main.cpp和一个Makefile文件。main.cpp#include using namespace std;int main(){ cout<<"hello world!"<<endl; return 0;}Makefilemain:main.o g++ -o main main.omain.o:main.cpp g++ -c -o mai

2013-04-09 17:49:56 1521

原创 初识Makefile

三个文件,hello.h  hello.cpp  main.cpphello.h#ifndef MAKE_FILE_OO1#define MAKE_FILE_001void printHello();#endifhello.cpp#include #include "hello.h"using namespace std;void printHello

2013-04-09 16:42:07 980

原创 Lambda表达式语法

例子把斐波那契数列的前9个数存入vector容器。并输出。#include #include #include using namespace std;int main(){ const int elementNum=9; vector vecInt(elementNum,1); int x=1,y=1; generate_n(vecInt.begin()+2,ele

2013-03-09 16:04:04 1963

原创 Lambda Expressions in C++

关于Lambda表达式许多编程语言提供了匿名函数,Lambda表达式是与匿名函数有关的编程方法。匿名函数就是一个只有函数实体,而没有函数名字的函数。Lambda表达式隐式的定义了一个函数对象类(有关函数对象简介),并且构造了一个该类的对象。可以把Lambda表达式看作是包含状态和可以访问封闭作用域外的变量的匿名函数。函数对象 VS Lambda表达式我们有时候会用函数指针和函数对象来解

2013-03-09 14:22:35 1359

3-sum算法求解 python

3-sum算法求解 python http://blog.csdn.net/qq575787460/article/details/39100531的配套资源

2014-09-06

查找数组中和为某个值的元素对的个数

查找数组中和为某个值的元素对的个数。 2--sum。 http://blog.csdn.net/qq575787460/article/details/39085999的资源

2014-09-05

查找数组中最接近与某值的元素 python

查找数组中最接近与某值的元素。 是自己博文http://blog.csdn.net/qq575787460/article/details/39058649的资源。

2014-09-04

跳跃表 C++实现

跳跃表的C++实现版本。 提供与红黑树的测试用例。

2013-11-23

linux 网络库 C++ epoll

个人实验性质的网络库,linux下C++,封装epoll模型。 实现了定时器管理。代码量700+行。

2013-11-13

linux webserver例子

这是linux环境下使用epoll模型编写的一个webserver例子,makefile已经写好,直接下载好make一下就可以了。我在自己本机测试与使用libevent性能差不多。 欢迎提出意见。

2013-10-13

VS2010编译libjingle0.6.2步骤

VS2010编译libjingle0.6.2步骤 图文并茂

2013-01-27

VC2010操作ini库

VC2010操作ini库 lib

2012-11-15

Qt4.8.2 Qt实现360安全卫士界面

Qt实现360安全卫士界面 正常的双击放大,缩小。动态换肤。

2012-08-24

Qt4.8.2 模仿QQ桌面右下角消息提示

Qt4.8.2 模仿QQ桌面右下角消息提示

2012-08-17

Qt4.8.2 QQ抽屉 QTreeWidget

Qt4.8.2 QQ抽屉 QTreeWidget 可以自行添加,删除,重命名分组。 添加,删除,重命名好友。

2012-08-13

Qt4.8.2 mp3 音乐播放器

Qt4.8.2 mp3 音乐播放器 精力有限,不想继续写下去了。但是已完成大部分功能。 使用sqlite数据库

2012-08-11

Qt4.8.2 绘图 切割图片

Qt4.8.2 绘图 切割图片 源码+可执行文件

2012-08-11

Qt 4.8.2 QPushButton 按钮贴图

Qt 4.8.2 QPushButton 按钮贴图 源码 可执行文件

2012-08-10

Qt4.8.2 界面换肤

Qt4.8.2 界面换肤demo 双击主程序界面 弹出换肤窗口

2012-08-03

Qt4.8.2 加农炮小游戏 cannon 源码 和exe文件

Qt4.8.2 加农炮cannon小游戏,附源码和可行程序。 移动鼠标改变射击角度,按住鼠标左键,改变射击力度,松开鼠标射击。 射中+20分,射不中-10分,初始分100. 当分数《=0时,游戏结束。

2012-08-02

Qt4 FindDialog

Qt4 FindDialog 小入门程序 了解信号与槽机制

2012-07-23

Qt4 listWidget

Qt4 listWidget 右键弹出菜单测试。 可更改listWidget风格.

2012-07-23

VC6获取主机信息,cpu信息,内存信息,硬盘信息,dll调用

VC6获取主机信息 内存信息 cpu信息 硬盘信息 dll调用 dll导出对话框资源。

2012-07-14

VC++ hook 挂机锁 带钩子过程dll源码

VC++ hook 挂机锁 带钩子过程dll源码

2012-04-10

c++ 桌面时钟 纯API 双缓冲

c++ 桌面时钟 纯API VC6开发环境 双缓冲绘图

2012-04-09

hanio塔 C语言

hanio塔 C语言 数据结构 hanio塔 C语言 数据结构 hanio塔 C语言 数据结构

2011-11-22

C++ 多线程求PI

C++ 多线程求PI,里面有word文档 写的是思路

2011-11-15

数据结构 迷宫求解 C++

数据结构 迷宫求解 C++ 数据结构 迷宫求解 C++ 数据结构 迷宫求解 C++

2011-11-14

利用栈的括号匹配算法 C语言数据结构

利用栈的括号匹配算法 C语言数据结构 利用栈的括号匹配算法 C语言数据结构

2011-11-13

数据结构 经典算法 CHM格式 C语言

数据结构 经典算法 CHM格式 C语言 数据结构 经典算法 CHM格式 C语言

2011-11-11

TCP局域网聊天软件 源代码

TCP局域网聊天软件 源代码 分为服务器和客户端 支持多用户聊天

2011-10-29

UDP局域网聊天软件

UDP局域网聊天软件 UDP局域网聊天软件UDP局域网聊天软件

2011-10-14

约瑟夫环问题程序 源代码

设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,每个人持有一个正整数密码。开始时任选一个正整数做为报数上限m,从第一个人开始顺时针方向自1起顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的下一个人开始重新从1报数。如此下去,直到所有人全部出列为止。令n最大值取30。要求设计一个程序模拟此过程,求出出列编号序列。

2011-03-20

链表(创建,清空,删除元素,求长度,插入元素)

1.初始化 2.清空 3.求链表长度 4.检查链表是否为空 5.检查链表是否为满 6.遍历链表(设为输出元素7.从链表中查找元素 8.从链表中查找与给定元素值相同的元素在表中的位置 9.向链表中插入元素 10. 从链表中删除元素 其他键退出。。。。。 其中黑体部分必做

2011-03-19

html入门教程 网页制作 通俗易懂

html入门教程 适合新手学习 简单易懂 方便实用..

2011-03-07

空空如也

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

TA关注的人

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