自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(25)
  • 收藏
  • 关注

转载 SOCKET, TCP/UDP, HTTP, FTP

(一)TCP/UDP,SOCKET,HTTP,FTP简析TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层:网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:FTP、HTTP、TELNET、SMTP、DNS等协议HTTP是应用层协议,其传输都是被包装成

2013-12-23 23:58:48 436

转载 C++类中的static数据成员,static成员函数

C++类中谈到static,我们可以在类中定义static成员,static成员函数!C++primer里面讲过:static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联!这句话可能比较拗口,其实可以这么理解:每个static数据成员可以看成是类的一个对象,而不与该类定义的对象有任何关系!下面我们就来具体

2013-12-09 22:49:06 340

转载 muduo网络库使用心得

上个月看了朋友推荐的mudo网络库,下完代码得知是国内同行的开源作品,甚是敬佩。下了mudo使用手册和035版的代码看了下结构,感觉是一个比较成熟而且方便使用的网络库。本人手头也有自己的网络库,虽然不敢说是一个多强大的网络库,但毕竟在外网也稳定运营了几年,多组同时在线也跑过30w左右,单组服务器也能跑上w人。做游戏服务器几年的经验,感觉稳定性才是网游服务器最核心最重要的环节,效率还在其次,这也是目

2013-11-16 22:45:26 753

转载 浅谈C++多态性

C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。  多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。  C++多态性是通过虚函数来实现的,虚函数允许子类重新定

2013-11-16 21:43:48 490

转载 Hash表(C++实现)

哈希表的几个概念:映像:由哈希函数得到的哈希表是一个映像。冲突:如果两个关键字的哈希函数值相等,这种现象称为冲突。处理冲突的几个方法:1、开放地址法:用开放地址处理冲突就是当冲突发生时,形成一个地址序列,沿着这个序列逐个深测,直到找到一个“空”的开放地址,将发生冲突的关键字值存放到该地址中去。例如:hash(i)=(hash(key)+d(i)) MOD m

2013-11-16 19:06:40 639

转载 Boost.Asio和ACE之间关于Socket编程的比较

ACE是一个很成熟的中间件产品,为自适应通讯环境,但它过于宏大,一堆的设计模式,架构是一层又一层,对初学者来说,有点困难。 ASIO是基本Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。最近分析ASIO的源代码,让我无不惊呀于它设计。在ACE中开发中的内存管理一直让人头痛,ASIO的出现,让我看到新的曙光,成为我新的好伙伴。简单地与ACE做个比较。

2013-11-16 12:23:11 678

转载 ICE 分布式中间件开发VS 分布式开发之ACE

ICE(Internet Communications Engine)是ZeroC 提供的一款高性能的中间件,基于ICE 可以实现电信级的解决方案。前面我们提到过在设计网站架构的时候可以使用ICE 实现对网站应用的基础对象操作,将基础对象操作和数据库操作封装在这一层,在业务逻辑层以及表现层(java,php,.net,python)进行更丰富的表现与操作,从而实现比较好的架构。基于ICE 的数

2013-11-16 11:54:33 1015

转载 Windows IOCP模型与Linux EPOLL模块之比较

一:IOCP和Epoll之间的异同。异:1:IOCP是WINDOWS系统下使用。Epoll是Linux系统下使用。2:IOCP是IO操作完毕之后,通过Get函数获得一个完成的事件通知。Epoll是当你希望进行一个IO操作时,向Epoll查询是否可读或者可写,若处于可读或可写状态后,Epoll会通过epoll_wait进行通知。3:IOCP封装了异步的消息事件的通知机制,同时封装

2013-11-16 11:45:38 549

转载 后缀数组

http://blog.csdn.net/hackbuteer1/article/details/7968623

2012-11-15 15:19:51 174

转载 Trie树详解及其应用

http://blog.csdn.net/hackbuteer1/article/details/7964147

2012-11-15 14:42:12 167

转载 海量数据处理

海量数据处理是基于海量数据上的存储、处理、操作。       所谓海量,就是数据量很大,可能是TB级别甚至是PB级别,导致无法一次性载入内存或者无法在较短时间内处理完成。面对海量数据,我们想到的最简单方法即是分治法,即分开处理,大而化小,小而治之。我们也可以想到集群分布式处理。1 海量数据的存储:为大数据分析做准备传统关系型数据库

2012-11-01 13:27:39 574

转载 海量数据处理 算法总结

1. Bloom Filter【Bloom Filter】Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也就是Bloom Filter判断元素不再集合,那肯定不在。如果判断元素存在集合中,

2012-11-01 13:26:36 733

转载 malloc 和 delete的区别

概述: malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。区别:1). malloc是C++/C语言的标准库函数,new/delete是C++的运算符。2). 对非内部数据类型的对象而言,malloc不能完成对象的初始化,new能够完成对象的初始化3. 内存泄漏对于malloc或者new都可以检查出

2012-10-28 13:11:14 1213

转载 堆和栈的区别

1.申请方式不同Stack由系统自动分配,而heap需要程序员自己申请,并指明大小。2. 申请后系统的响应不同Stack:只要栈的剩余空间大于申请空间,系统就为程序提供内存,否则将抛出栈溢出异常Heap:当系统收到程序申请时,先遍历操作系统中记录空闲内存地址的链表,寻找第一个大于所申请空间的堆结点,然后将该结点从空间结点链表中删 除,并将该结点的空间分配给程序。另外

2012-10-27 14:16:37 175

转载 C++四种强制类型转换

1.C++有几种强制类型转换?分别是什么?C++的四种强制类型转换,所以C++不是类型安全的。分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast2.为什么使用C风格的强制转换可以把想要的任何东西转换成合乎心意的类型。那为什么还需要一个新的C++类型的强制转换呢?新类型的强制转换可以提供更好

2012-10-27 14:15:38 226

转载 volatile关键字的作用

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:     1). 并行设备的硬件寄存器(如:状态寄存器)     2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic

2012-10-27 14:11:50 3618

转载 大端法、小端法、网络字节序

关于字节序(大端法、小端法)的定义《UNXI网络编程》定义:术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。 也可以说: 1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。 2.大端法(Big-Endia

2012-10-27 14:09:23 485

转载 虚继承与虚函数表(虚函数三)

一 虚继承1) 代码:Code#include iostream>using namespace std;class B{public:    int i;    virtual void vB(){ cout  "B::vB"  endl; }    void fB(){ cout  "B::fB"  endl;}};class D

2012-10-26 15:38:06 1066

转载 多重继承与虚函数表(虚函数二)

一 多重继承1) 代码:Code#include iostream>using namespace std;class B1{public:    int x;    virtual void v1(){ cout  "B1::v1"  endl; }    void f1(){cout  "B1::f1"  endl; }};cla

2012-10-26 15:36:28 296

转载 单继承与虚函数表(虚函数一)

一 单继承1) 代码:Code#include iostream>using namespace std;class A{public:    void f1(){cout  "A::f1"  endl;}    void f2(){cout  "A::f2"  endl;}    virtual void v1(){cout  "A::v1"

2012-10-26 15:34:50 251

转载 同步和异步

今天看到《WIN32多线程程序设计》的同步控制时,才发现原来自己对同步和异步的概念很模糊,甚至混淆。于是GOOGLE了一下。下面都是高人们的见解,简单明了。------------------------------------------------------------------------------------------------------同步是指:发送方发出

2012-10-26 15:31:13 354

转载 服务器端socket使用流程

基于Socket的UDP和TCP编程介绍一、概述TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(stream socket)的一种。UDP:用户数据报协议。UDP是一种无连接协议。UDP套接口是数据报套接口(dat

2012-10-26 15:25:45 555

转载 等概率随机函数的实现

题目:已知随机函数rand(),以p的概率产生0,以1-p的概率产生1,现在要求设计一个新的随机函数newRand(), 使其以1/n的等概率产生1~n之间的任意一个数。解决思路:可以通过已知随机函数rand()产生等概率产生0和1的新随机函数Rand(),然后调用k(k为整数n的二进制表示的位数)次Rand()函数,得到一个长度为k的0和1序列,以此序列所形成的整数即为1--n之间的数字。注

2012-10-25 09:53:32 557

转载 static关键字的作用

面试题:static有什么作用?答:在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数 一、       定义全局静态变量 :在全局变量前面加上关键字static,该全局变量变成了全局静态变量。全局静态变量有以下特点:(1)       在全局数据区内分配内存(2)       如果没有初始化,其默认值为0(3)       该变量

2012-10-25 09:41:06 227

转载 拉格朗日乘子(百度百科)

拉格朗日乘子法 拉格朗日乘子(Lagrange multiplier)  基本的拉格朗日乘子法(又称为拉格朗日乘数法),就是求函数f(x1,x2,...)在g(x1,x2,...)=0的约束条件下的极值的方法。其主要思想是引入一个新的参数λ(即拉格朗日乘子),将约束条件函数与原函数联系到一起,使能配成与变量数量相等的等式方程,从而求出得到原函数极值的各个变量的解。  具体方法:

2011-08-17 21:32:04 722

空空如也

空空如也

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

TA关注的人

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