自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李腾龙

专注于编写工业强度的软件

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

原创 简单说说TCP(5) --- RST

RST是什么什么情况下会出现RST包

2016-04-11 00:29:00 8907 1

原创 简单说说TCP(4) --- SYN攻击

什么是SYN攻击?如何检测SYN攻击?应对SYN攻击的方法。

2016-04-10 02:20:20 742

原创 简单说说TCP(1) --- 建立连接三次握手

建立TCP连接的三次握手过程

2016-04-10 01:23:56 917

原创 简单说说TCP(2) --- 数据传输

基本原理TCP提供可靠的数据传输服务。建立连接后,应用程序将数据提交给TCP,TCP将数据放入自己的缓存。TCP会将数据按照MSS的大小进行分段,并为每个分段加上TCP头部后提交给网络层。可靠性保障确认到达 + 超时重传:防止丢包分组序列号:确保数据包的顺序检验和:防止信道上的bit错误流量控制(滑动窗口):防止发送方太快而接收方太慢传输效率 “发一个TCP分组,等待一个ACK,再发下

2016-04-08 16:13:07 2795

原创 libevent - 一个奇怪的问题

libevent背后偷偷建立了2个socket pair

2016-04-08 15:57:40 846

原创 简单说说TCP(3) --- 断开连接四次握手

A是主动关闭方,B是被动关闭方,四次握手可以描述为:第一次握手:A告诉B,“我要关闭连接了”。第二次握手:B回复A,“我知道你要关闭了,但是请等一下,我还有数据没有传完,你等我消息”。第三次握手:B告诉A,“我的数据发完了,你可以关闭连接了”。第四次握手:A回复B,“好的,那我关闭连接了”。

2016-04-07 17:16:34 7133

原创 Google关于C++开源项目的规范

一、头文件规范    1. 每一个cpp文件对应都有.h文件。除非cpp文件很简单或者值包含了main函数。    2. 每一个头文件都定义自己的头文件保护,防止重复引用和编译。    3. 一般都用#include而不是前向定义,除非include的代价过大。    4. 函数定义如果超过10行,坚决不能inline。    5. 函数参数排序,从input到output。

2014-03-30 23:30:55 738

原创 命名空间 - 一个容易被忽视的查找规则

示例代码:namespace lx1{ class Point3D { public: Point3D(double dx, double dy, double dz) : m_dX(dx) , m_dY(dy) , m_dZ(dz){} do

2014-03-30 22:37:14 844

原创 防止内存泄露的一些Tips

1.如果在构造函数里new了一个对象并使用成员指针变量来保存,那么必须在析构函数里delete它,并且不能为了某些便利而将这个对象的所有权转让出去的事情发生。 2.尽量使用shared_ptr。只要不发生循环引用,那么这个东西可以让你的对象安全地互相传递,随便放在什么容器里面添加删除,再也不用考虑生命周期问题了。(什么是循环引用?简单来说就是,两个对象都使用了一个shared_ptr成员变

2014-03-30 22:29:36 620

原创 一个简单的序列化实现

以下是一个带有入侵性的序列化实现方法,尚还未加入支持STL容器。 namespace persistent{ //bool理论上使用一个bit就可以表示,但是实际还是使用1个字节,因为这是内存操作的最小单位 //这两个值可以是任意值,只要不相同即可,只是用于校验 const long true_pattern = 0xF00DF00D; cons

2014-03-30 21:33:21 800

原创 STL中的排序

STL提供了许多功能强大的排序算法,但是所有的排序算法的参数都具有一个范围[begin, end]。这里是使用迭代器(iterator),并且是随机访问迭代器(RandomAccessIterator)。 比较函数在介绍具体的算法之前,先要了解一下STL排序算法中的比较函数。为了使STL排序算法按照你的规则排序,你需要给它指定一个比较函数。如果没有指定,编译器会自行指定为les

2014-03-30 21:13:49 482

原创 游戏服务器边学边做(00000000) - 前言

做开发2年,其中游戏开发1年。陆续也参与了2个游戏项目的开发(一款端游,一款手游)。        基本上都是半路出家,没有真正意义上的从零开始搭建一个游戏服务器。浑浑噩噩,一直写逻辑,来需求就做。一天到晚虽然很累,但是累得很糊涂。为什么?因为没有时间思考。        一直以来总是想让自己沉淀一下,但是又一次次地给自己找理由”等这段时间忙完了再整理“……        这段时间换工

2014-03-30 04:32:57 1148 2

原创 智力题 - 盛4升水

题目:有无限多的水,一个3升的桶和一个5升的桶,如何才能盛出4升的水?(答案在最下面,可以自己先试试看!)                                        解答:第一步,5升桶打满,然后向3升桶中注

2014-03-27 23:28:24 1138

原创 智力题 - 烧绳子

题目:有一种绳子,粗细不均匀,但是从头烧到尾,固定为1小时。现有若干这样的绳子,如何确定1小时15分钟?(答案在最下面,可以先自己试试看!)                                      解答:第一步,绳A和

2014-03-27 23:23:16 1853 1

原创 智力题 - 称12个小球

题目:有12个小球,外形一样,其中有1个与其他11个重量不同,且无法用手感知出来。现有一天平,你共有三次机会,找出那个不一样的小球吧。(答案在最下面,可以先自己试试看)                                      

2014-03-27 23:17:14 1471

原创 virtual关键字

一、基本概念多态,是C++中一个很棒的特性——“无论发送消息的对象属于什么类,它们均发送具有同一形式的消息,对消息的处理方式可能随接手消息的对象而变”的处理方式被称为多态性。其实现是基于虚函数机制的。虚函数,是一种成员函数,它可以在该类的派生类中被重新定义并被赋予另外一种处理功能。示例如下:class Base{public: ... virtual voi

2014-03-25 01:30:17 790

原创 函数指针 - 一般情况和类的nonstatic成员函数

函数指针是通过指向函数的指针间接调用函数。函数指针可以实现对参数类型、参数顺序、返回值都相同的函数进行封装,是多态的一种实现方式。由于类的非静态成员函数中有一个隐形的this指针,因此,类的成员函数的指针和一般函数的指针的表现形式不一样。 1、指向一般函数的指针函数指针的声明中就包括了函数的参数类型、顺序和返回值,只能把相匹配的函数地址赋值给函数指针。为了封装同类型的函数,可以把函数指

2014-03-24 19:08:04 755

空空如也

空空如也

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

TA关注的人

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