- 博客(17)
- 收藏
- 关注
原创 简单说说TCP(2) --- 数据传输
基本原理TCP提供可靠的数据传输服务。建立连接后,应用程序将数据提交给TCP,TCP将数据放入自己的缓存。TCP会将数据按照MSS的大小进行分段,并为每个分段加上TCP头部后提交给网络层。可靠性保障确认到达 + 超时重传:防止丢包分组序列号:确保数据包的顺序检验和:防止信道上的bit错误流量控制(滑动窗口):防止发送方太快而接收方太慢传输效率 “发一个TCP分组,等待一个ACK,再发下
2016-04-08 16:13:07
2894
原创 简单说说TCP(3) --- 断开连接四次握手
A是主动关闭方,B是被动关闭方,四次握手可以描述为:第一次握手:A告诉B,“我要关闭连接了”。第二次握手:B回复A,“我知道你要关闭了,但是请等一下,我还有数据没有传完,你等我消息”。第三次握手:B告诉A,“我的数据发完了,你可以关闭连接了”。第四次握手:A回复B,“好的,那我关闭连接了”。
2016-04-07 17:16:34
7298
原创 Google关于C++开源项目的规范
一、头文件规范 1. 每一个cpp文件对应都有.h文件。除非cpp文件很简单或者值包含了main函数。 2. 每一个头文件都定义自己的头文件保护,防止重复引用和编译。 3. 一般都用#include而不是前向定义,除非include的代价过大。 4. 函数定义如果超过10行,坚决不能inline。 5. 函数参数排序,从input到output。
2014-03-30 23:30:55
806
原创 命名空间 - 一个容易被忽视的查找规则
示例代码: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
906
原创 防止内存泄露的一些Tips
1.如果在构造函数里new了一个对象并使用成员指针变量来保存,那么必须在析构函数里delete它,并且不能为了某些便利而将这个对象的所有权转让出去的事情发生。 2.尽量使用shared_ptr。只要不发生循环引用,那么这个东西可以让你的对象安全地互相传递,随便放在什么容器里面添加删除,再也不用考虑生命周期问题了。(什么是循环引用?简单来说就是,两个对象都使用了一个shared_ptr成员变
2014-03-30 22:29:36
680
原创 一个简单的序列化实现
以下是一个带有入侵性的序列化实现方法,尚还未加入支持STL容器。 namespace persistent{ //bool理论上使用一个bit就可以表示,但是实际还是使用1个字节,因为这是内存操作的最小单位 //这两个值可以是任意值,只要不相同即可,只是用于校验 const long true_pattern = 0xF00DF00D; cons
2014-03-30 21:33:21
865
原创 STL中的排序
STL提供了许多功能强大的排序算法,但是所有的排序算法的参数都具有一个范围[begin, end]。这里是使用迭代器(iterator),并且是随机访问迭代器(RandomAccessIterator)。 比较函数在介绍具体的算法之前,先要了解一下STL排序算法中的比较函数。为了使STL排序算法按照你的规则排序,你需要给它指定一个比较函数。如果没有指定,编译器会自行指定为les
2014-03-30 21:13:49
544
原创 游戏服务器边学边做(00000000) - 前言
做开发2年,其中游戏开发1年。陆续也参与了2个游戏项目的开发(一款端游,一款手游)。 基本上都是半路出家,没有真正意义上的从零开始搭建一个游戏服务器。浑浑噩噩,一直写逻辑,来需求就做。一天到晚虽然很累,但是累得很糊涂。为什么?因为没有时间思考。 一直以来总是想让自己沉淀一下,但是又一次次地给自己找理由”等这段时间忙完了再整理“…… 这段时间换工
2014-03-30 04:32:57
1231
原创 智力题 - 盛4升水
题目:有无限多的水,一个3升的桶和一个5升的桶,如何才能盛出4升的水?(答案在最下面,可以自己先试试看!) 解答:第一步,5升桶打满,然后向3升桶中注
2014-03-27 23:28:24
1227
原创 智力题 - 烧绳子
题目:有一种绳子,粗细不均匀,但是从头烧到尾,固定为1小时。现有若干这样的绳子,如何确定1小时15分钟?(答案在最下面,可以先自己试试看!) 解答:第一步,绳A和
2014-03-27 23:23:16
2424
1
原创 智力题 - 称12个小球
题目:有12个小球,外形一样,其中有1个与其他11个重量不同,且无法用手感知出来。现有一天平,你共有三次机会,找出那个不一样的小球吧。(答案在最下面,可以先自己试试看)
2014-03-27 23:17:14
1614
原创 virtual关键字
一、基本概念多态,是C++中一个很棒的特性——“无论发送消息的对象属于什么类,它们均发送具有同一形式的消息,对消息的处理方式可能随接手消息的对象而变”的处理方式被称为多态性。其实现是基于虚函数机制的。虚函数,是一种成员函数,它可以在该类的派生类中被重新定义并被赋予另外一种处理功能。示例如下:class Base{public: ... virtual voi
2014-03-25 01:30:17
863
原创 函数指针 - 一般情况和类的nonstatic成员函数
函数指针是通过指向函数的指针间接调用函数。函数指针可以实现对参数类型、参数顺序、返回值都相同的函数进行封装,是多态的一种实现方式。由于类的非静态成员函数中有一个隐形的this指针,因此,类的成员函数的指针和一般函数的指针的表现形式不一样。 1、指向一般函数的指针函数指针的声明中就包括了函数的参数类型、顺序和返回值,只能把相匹配的函数地址赋值给函数指针。为了封装同类型的函数,可以把函数指
2014-03-24 19:08:04
828
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人