- 博客(117)
- 资源 (2)
- 收藏
- 关注
转载 UNIX网络编程(卷I)环境搭建
http://blog.csdn.net/zjf280441589/article/details/18660697UNIX网络编程(卷I)环境搭建 --解决unp.h编译问题
2015-11-06 16:38:59 542
转载 Linux中的静态库和动态库简介及生成过程示例
http://www.daxixiong.com/?/article/13【文章摘要】在实际的软件开发项目中,不是每一行代码都需要我们亲自写。在我们的软件产品中,有一些代码(尤其是函数)的出现频率很高,它们可以被当作公共代码来反复使用。为了避免重复劳动,我们就把这些公共代码编译为库文件,供需要的程序调用。在Linux中,库分为静态库和动态库两种。本文对静态库和动态库进行了详细的介绍,并
2015-11-05 20:41:23 757
原创 Qt开发环境安装与软件下载
之前写过两个介绍qt4.7和4.8环境的配置和软件的下载,感觉很麻烦;后来找到了一个完整版的Qt开发包(4.7),直接安装就ok,环境变量也不需要配置,和安装普通的应用软件是一样的步骤;软件下载地址:http://pan.baidu.com/s/1hqJccWO
2015-11-01 13:06:50 642
转载 从腾讯QQ升级游戏之“快速加入游戏”功能的实现缺陷看C/S之间如何正确分配相关协作
http://blog.itpub.net/17007506/viewspace-615570笔者在闲暇时,偶尔会登录腾讯QQGame玩玩升级游戏。这确实是一款非常优秀的软件作品,腾讯的开发人员在此展现了极高的技术水准。QQ游戏同时在线用户数都在百万到千万之数量级以上,可以想象其在性能方面所面临的挑战有多高。 QQ升级游戏有一个“快速加入游戏”的功能,方便玩家尽快加入
2015-11-01 09:41:50 924
转载 从腾讯QQgame高性能服务器集群架构看“分而治之”与“自治”等分布式架构设计原则
http://blog.itpub.net/17007506/viewspace-616852/ 腾讯QQGame游戏同时在线的玩家数量极其庞大,为了方便组织玩家组队游戏,腾讯设置了大量游戏室(房间),玩家可以选择进入属意的房间,并在此房间内找到可以加入的游戏组(牌桌、棋盘等)。玩家选择进入某个房间时,必须确保此房间当前人数未满(通常上限为400),否则进入步骤将会失败。玩家在登入QQGame
2015-11-01 09:38:02 2547
转载 带你玩转Visual Studio——结局汇总
http://blog.csdn.net/luoweifu/article/details/49499019感谢这一系列文章陆陆续续写了一个月,也差不多可以告一个段落了。感谢读者们一直以来对我关注和支持!现将这一系列文章在这做一个汇总,以方便大家查阅。若是初学者,建议按顺序阅读。系列文章目录带你玩转Visual Studio——开篇介绍带你玩
2015-10-30 21:43:12 359
原创 同时输出数据到标准输出和文件
/************************************************************************* > File Name: tee.c > Author: > Mail: > Created Time: 2015年10月30日 星期五 20时40分42秒 ***************************************
2015-10-30 21:16:52 557
转载 你敢说自己懂 C 语言么?
http://netsmell.com/post/you-know-c-programming-languauge.html这篇文章的目的是让每个程序员(特别是 C 程序员)说:我真的不懂 C。我想要让大家看到 C 语言的那些阴暗角落比我们想象中更近,甚至那些平常的代码中就包含着未定义的行为。这篇文章设置了一系列的问题和答案。所有的例子都是从源代码中单独分离出来的。1.
2015-10-30 20:15:34 386
原创 客户端向服务器发送普通数据和紧急数据的实例
/************************************************************************* > File Name: client.c > Author: yxk > Mail: > Created Time: 2015年10月29日 星期四 20时23分35秒 *********************************
2015-10-29 21:04:21 416
转载 后台开发面试经验
岗位:后台开发,C/C++、JAVA网络HTTP1.1和HTTP1.0的区别,参考:http://blog.csdn.net/hguisu/article/details/8608888持久连接–connection,一个tcp连接上可以传送多个请求; host域–使用虚拟主机技术,这样可以区分一台主机上的多个应用; 增加了一些请求方法HTTP的头部
2015-10-27 17:26:50 932
原创 插入排序C++实现
#include #include #include #define less 0#define bigger 1using namespace std;/*从大到小排序arr = 4, 5, 3, 1, 2;第一步:arra[0] = 4; temp = arra[1] = 5;将temp与arra[1]之前的元素比较,如果比arr[0]大,则arra[1] = arr[0]
2015-10-27 10:22:33 361
转载 Linux下Gcc生成和使用静态库和动态库详解
一、基本概念1.1什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。 1.2库的种类linux下的库有两种:静态库和共享库(动态库)。
2015-10-26 13:12:51 393
转载 游戏服务器编程
拼包函数及网络封包的异常处理(含代码)本文作者:sodme本文出处:http://blog.csdn.net/sodme声明:本文可以不经作者同意任意转载、复制、传播,但任何对本文的引用都请保留作者、出处及本声明信息。谢谢!常见的网络服务器,基本上是7*24小时运转的,对于网游来说,至少要求服务器要能连续工作一周以上的时间并保证不出现服务器崩溃这样的灾难性事件。事 实上,要
2015-10-25 20:26:45 6506
转载 QQ游戏百万人同时在线服务器架构实现
QQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色,相比之下,联众似乎已经根本不是QQ的对手,因为QQ除了这100万的游戏在线人数外,它还拥有3亿多的注册量(当然很多是重复注册的)以及QQ聊天软件900万的同时在线率,我们已经可以预见未来由QQ构建起来的强大棋牌休闲游戏帝国。服务器程序,其可承受的同时连接数目是有理论峰值的,通
2015-10-25 20:05:52 1752
原创 STL的三个版本
stl比较有名的实现有三个。一个是SGI STL。STL之父离开HP之后就去了SGI(当然不是去搞侏罗纪公园),然后和Matt Austern这些STL大牛一起搞了SGI STLSGI STL技术比较新,很规范(但是代码读起来未必好懂)像concept checking这些技术用的不少,boost graph library的想法也是在这其中产生的。后来有人觉得sgi st
2015-10-23 17:28:37 1387
原创 STL中allocator类
allocator类是C++的一个模板,它提供类型化的内存分配以及对象的分配和撤销。allocator类将对象分配和对象构造分开。当allocator对象分配内存的时候,它会分配适当大小并排列成保存给定类型对象的空间。allocator提供如下几种操作:allocator a; 定义名为a的allocator对象,可以分配内存或构造T类型的对象。a.alloca
2015-10-23 17:12:28 526
原创 STL源码剖析:第一章
#include using namespace std;/*模板一般化设计*/templateclass TestClass{public: TestClass(){cout << "I, O" << endl;}};/*模板特殊化设计*/templateclass TestClass{public: TestClass() {cout << "T*, T*" <
2015-10-23 11:54:29 469
转载 traceroute命令
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,
2015-10-21 22:51:21 542
转载 RAII惯用法:C++资源管理的利器
RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。我记得第一次学到RAII惯用法是在Bjarne Stroustrup的
2015-10-21 21:13:43 325
转载 Google服务器架构图解简析
无疑是互联网时代最闪亮的明星。截止到今天为止,Google美国主站在Alexa排名已经连续3年第一,Alexa Top100中,各国的Google分站竟然霸占了超过20多个名额,不得不令人感叹Google的强大。不论何时,不论何地,也不论你搜索多么冷门的词汇,只要你的电脑连接互联网,只要你轻轻点击“google搜索”,那么这一切相关内容google都会在1秒钟之内全部搞定,这甚至比你查询“我的文档
2015-10-21 18:44:28 658
转载 大型网站服务器架构
QQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色,相比之下,联众似乎已经根本不是QQ的对手,因为QQ除了这100万的游戏在线人数外,它还拥有3亿多的注册量(当然很多是重复注册的)以及QQ聊天软件900万的同时在线率,我们已经可以预见未来由QQ构建起来的强大棋牌休闲游戏帝国。服务器程序,其可承受的同时连接数目是有理论峰值的,通过C
2015-10-21 18:42:36 1226 1
原创 用STL中的map容器实现从很多单词找出所有只有一个字母不同的单词
对大约8900个单词,从中找出所有的只有一个字母不相同的单词。最后一个算法不是特别清楚。。。。慢慢再看看#include #include #include #include using namespace std;void printHighChangeables(const map> &adjWords, int minWords = 15){ map>::const
2015-10-20 21:18:39 583
转载 AVL树的简单实现
http://www.cnblogs.com/heqile/archive/2011/11/28/2265713.htmlhttp://www.cnblogs.com/heqile/archive/2011/11/28/2266385.html#include #include #include #include using namespace std;static
2015-10-19 15:50:21 303
原创 用C++实现二叉树
#include using namespace std;templateclass BinarySearchTree{public: BinarySearchTree():root(NULL){} /*复制构造函数*/ BinarySearchTree(const BinarySearchTree & rhs){ root = clone(rhs.root); } /
2015-10-18 17:48:03 465
转载 中缀表达式转换成前缀表达式和后缀表达式的极其简单方法
35,15,+,80,70,-,*,20,/ //后缀表达方式(((35+15)*(80-70))/20)=25 //中缀表达方式 /,*,+,35,15,-,80,70, 20 //前缀表达方式 人的思维方式很容易固定~~!正如习惯拉10进制。就对2,3,4,8,16等进制不知所措一样~~!
2015-10-18 11:17:26 962
转载 ICMP协议介绍
1、ICMP简介ICMP全名为(INTERNET CONTROL MESSAGE PROTOCOL)网络控制消息协议。 ICMP的协议号为1。ICMP报文就像是IP报文的小弟,总顶着IP报文的名头出来混。因为ICMP报文是在IP报文内部的,如图:图:IP数据报 2、ICMP类型 ICMP报文主要有两大功
2015-10-16 22:14:25 597
转载 Ubuntu下boost库的编译安装步骤及卸载方法详解
最近由于编译一个程序用到了C++的boost库,所以便安装了这个库。但是,其中遇到了一些小问题。所以记录下来,以供别人参考。首先说一下我的环境:Ubuntu 12.04 32bit, gcc 4.6.3其实在ubuntu下,可以用一下命令直接安装sudo apt-get install libboost-dev但是,我这样安装以后,编译程序时出现了很多错误,而且都
2015-10-16 21:19:47 17195 2
原创 最强最方便的傻瓜式的vim配置
https://github.com/ma6174/vim简单安装方法打开终端,执行下面的命令就自动安装好了:wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x或者自己手动安装:(以ubuntu为例)安装vim sudo apt-get install vim
2015-10-15 15:31:41 6327 1
转载 linux 内核编译
http://blog.csdn.net/wesleyluo/article/details/8005115内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度
2015-10-15 15:26:13 441
原创 转【STL学习】堆相关算法详解与C++编程实现(Heap)
http://blog.csdn.net/xiajun07061225/article/details/8553808堆简介堆并不是STL的组件,但是经常充当着底层实现结构。比如优先级队列(Priority Queue)等等。堆是一种完全二叉树,因此我们可以用数组来存储所有节点。在这里的实现中,采用了一个技巧:将数组中索引为0的元素保留,设置为极大值或者为极小值
2015-10-15 12:46:43 842
原创 特定的循环操作for_each
#include #include #include using namespace std;templateclass MultValue{private: Type factor;public: MultValue(const Type & value):factor(value){} void operator() (Type & elem)const { elem
2015-10-15 09:16:58 408
原创 C++类模板实例
#include class A{ int j;public: A(int x) :j(x) {} A(A *x) { j = x->j; } void operator!() { std::cout << "J = " << j << std::endl; }};templateclass B{ int i; T * x;public: B(int xa, T
2015-10-06 20:36:49 452
原创 C++模板函数
#include #include void printstring(const std::string & str){ std::cout << str << std::endl;}template void print(const T & var){ std::cout << var << std::endl;}int main(){ std::string str
2015-10-06 11:34:36 400
原创 C++中typename实例
#include template class X{ typename T::id i;public: void f() { i.g(); }};class Y{public: class id { public: void g() { std::cout << "id.g()\n"; } };};int main(){ Y y; X
2015-10-06 11:12:44 301
原创 第十一章:运算符重载,友元函数,重载<<运算符,类的自动转换和强制类型转换
运算符重载1、什么是运算符重载运算符重载也就是同一个运算符在不同的运算表达式中表示的含义不一样,也就是实现的功能不一样。比如:2*3 = 6,*号实现的功能是将两个整数相乘。int num; int *pnum = #此时的*号是用来定义一个指向num的指针变量。这个时候*就是实现了运算符重载。比如:True && False,&号是将两个变量相与。int *pnum =
2015-07-16 21:34:20 829
原创 第十二章:默认复制构造函数和赋值运算符
默认复制函数1、当把初始化一个对象的时候,用另一个已经存在的对象赋值。比如String str2 = str1;其中str2为已经生成的对象。这个时候,编译器会把str1中的成员按值赋给str2中的每个成员。如果对象成员中没有使用new来分配动态内存空间,则编译器自动生成的默认赋值函数,就可以正确实现,而不会出现错误。但是如果对象成员中有new分配的动态内存空间,比如下面的这个类,
2015-07-16 20:55:54 672
原创 堆排序算法实现
#include int h[101];//用来存放堆的数组int n;//用来存储堆中元素的个数,也就是堆的大小//交换函数,用来交换堆中两个元素的数值void swap(int x, int y){ int t; t = h[x]; h[x] = h[y]; h[y] = t;}//向下调整函数void siftdown(int i){ int t, flag
2015-07-15 21:20:46 354
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人