King的专栏

油滴穿钱孔的卖油翁不必羡慕百发百中的将军,唯手熟尔!-- 好记性不如烂笔头,夯实基本功!...

网络基本功:TCP拥塞控制机制

拥塞             计算机网络中的带宽,交换节点中的缓存和处理机制,都是网络资源。在某段时间内,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。拥塞发生的主要原因是网络能够提供的资源不足以满足用户的需求,这些资源包括缓存空间、链路带宽容量...

2016-04-30 21:41:30

阅读数 10551

评论数 1

网络基本功:滑动窗口

TCP的滑动窗口主要有两个作用,一是提供TCP的可靠性,二是提供TCP的流控特性。 同时滑动窗口机制还体现了TCP面向字节流的设计思路。 滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的速度,从而达到防止发送方发送速度过快导致网络故障的目的。 滑动窗口的...

2016-04-30 19:09:46

阅读数 1448

评论数 0

网络基本功:IP协议

IP协议             IP协议是TCP/IP 的核心协议,所有的TCP.UDP.ICMP.IGMP都是按照这种格式发送数据的。             IP提供的是一个“尽力而为”服务。IP协议在产生时是一个松散的网络,这个网络由各个大学的局域网相互连接而成,由一群蓬头垢面的Gee...

2016-04-30 16:25:39

阅读数 430

评论数 0

网络基本功:TCP重传

TCP片段重传:主要用到一个TCP片段重传超时计时器以及重传队列。 检测丢失片段并对之重传的方法概念是很简单的:每次发送一个片段,就开启一个重传计时器。计时器有一个初始值,并随时间递减。如果在片段接收到确认之前计时器超时,就重传片段。 tcp使用了这一基本技术,但实现方法稍有不同,原因在于为了提高...

2016-04-30 11:31:15

阅读数 1334

评论数 0

网络基本功:三次握手及四次挥手

TCP的三次握手及四次挥手

2016-04-29 20:31:21

阅读数 660

评论数 1

网络基本功:UDP/IP与TCP/IP的区别

确认连接; 消息重传; 流量控制(滑动窗口);拥塞(慢开始算法,避免拥塞算法,快恢复,快重传); 接收端将已接受的数据和自己剩下的窗口大小发给发送端; 数据顺序;

2016-04-29 16:56:00

阅读数 1283

评论数 0

Valgrind清除Bug

Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。 1.Memcheck  最常用的工具,用来检测程序中出现的内存问题,所有对内存的读写都会被检测到, 一切对malloc()/free()/new/delete的调用都会被捕获。所以,它能检测以下问题:  (1).对未初始...

2016-04-29 10:49:06

阅读数 411

评论数 0

dump和coredump

只要是程序猿一族,就会犯不少错(主要指的是编程),犯错了怎么办,就得找,就得解决,如果不解决,那这个程序就白写了,在计算机的世界里,没有将就,没有差不多,没有大约,没有似乎!只有对与不对,只有0和100的区别!! 所以既然写了程序,那么就要把程序写完,出错了怎么办,那也只有乖乖的,老老实实的找错,...

2016-04-29 10:35:39

阅读数 1225

评论数 0

0的作用

0在生活中随处可见,可是,它的身份确实多重的,必须的了解它的全部,下面简单介绍一下0在程序中的作用; 数字0的作用: 1.数字;(理所当然); 2.假;(真假判断); 3.代表地址;(void *) 0==null int *p=0;//此时0代表的是地址,是所有内存的起始地址;不可对其进行操作,...

2016-04-28 22:18:26

阅读数 384

评论数 0

北国的春

自从来到冰城-哈尔滨,我渐渐感受到了一句话: 春天,不是季节,而是内心;冬天不是内心,而是季节。 来也匆匆,去也匆匆、、、感觉那些绿叶和花都憋坏了,突然一夜都出来了。想想也挺不容易的,大半年饱受“冰雪”的全身心“摧残”(个人还是比较喜欢这个北国之城)奋斗,终于迎来了阳光,得到自由身。年复一年,日...

2016-04-21 20:23:40

阅读数 527

评论数 0

普通函数指针与成员函数指针

普通函数的指针:指向普通的函数,如果要指向类的成员函数,则该成员函数必须是静态的; void (*pFUN)(int ,char  *); 在这里为了定义的方便和简化表达式,强烈建议定义用typedef; typedef void(*pFUN)(int ,char *); pFUN fun1; v...

2016-04-13 15:31:41

阅读数 438

评论数 0

析构函数

当一个对象的生命周期结束后,其所占的内存就要被回收; 回收资源的工作就由析构函数来完成,析构函数就是反向的构造函数: 注意: 析构函数没有返回值; 析构函数没有参数; 一个类中只有一个析构函数 ; 析构函数的执行顺序与构造函数执行的顺序相反; 如果在构造函数里自己在堆区申请了...

2016-04-13 11:11:29

阅读数 507

评论数 0

main函数外也可以调用函数

在写程序的时候,我们都知道一般一个程序肯定有一个主函数,它是真个程序的入口地址,也就是程序在这里开始执行,就像要进入一个大房子的大门,我们必须要打开这个门,才能进入整个房子里面去!并且可能我们都觉得一般的函数调用都是在主函数里面,main函数外满一般不能执行和调用函数,那么这句话对吗?函数体外面可...

2016-04-13 10:40:52

阅读数 2302

评论数 0

拷贝构造函数的调用

一直说到拷贝构造函数,构造函数在创建对象时被调用,哪儿拷贝构造函数呢?? 1.当用 类的一个对象初始化另一个对象时: int main() { point A(1,2); point B(A);//用对象A初始化对象B,拷贝构造函数被调用. } 2.如果函数的参数是一个类的对象,哪么在...

2016-04-12 22:22:17

阅读数 1188

评论数 0

深拷贝与浅拷贝的区别

在C++中存在构造函数,专门用来创建对象时,对对象的初始化; 还有一个就是拷贝构造函数,拷贝构造函数又分为深拷贝和浅拷贝; 他们的区别是: 深拷贝就是,创建新的对象时,该对象自己在堆区申请一个内存空间,这样就不会出现在调用析构的时候找不到内存空间; 因为如果是浅拷贝的话,所有的指针都指向同...

2016-04-12 22:16:09

阅读数 551

评论数 0

虚表的地址与虚继承类大小的计算

虚函数列表在程序编译的时候已经存在; 虚指针在new对象时生成,虚指针的大小与虚函数的多少没有关系,所有的虚函数都放在虚函数列表里,通过虚指针来查找! 虚函数列表的地址就是对象的首地址; typedef  void (*FUN)(); 如:father *f=new father; ...

2016-04-11 22:23:04

阅读数 704

评论数 0

虚继承

虚继承主要解决多继承中出现变量访问不明确的问题; 解决方法: 1.用类名+::来解决; 2.虚继承; #include using namespace std; class A { public: int num; A() { num=100; cout<<&q...

2016-04-11 21:33:41

阅读数 419

评论数 0

delete析构的调用

如果基类的析构函数不是虚函数,那么在new出来对象,最后delete回收的时候调用析构函数的原则: 析构函数看指针是什么类型的,就调用那个类的析构函数,然后按继承的顺序,依次来调用父类的析构; 主要看delete 后面跟的指针是什么类型的!!!! #include using namesp...

2016-04-11 21:24:23

阅读数 876

评论数 0

inline函数

对于内联函数,主要用在代码块比较小,并且频繁调用的时候,可以将函数定义为内联函数,这样可以在编译期间就将函数静态绑定,在函数调用处将代码展开,提高程序执行的效率。 但此处又有几个问题, 例如C++中,类的成员函数默认的都是内联函数,但是为什么又能是虚函数呢??? 不是说内联函数不能为虚函数吗...

2016-04-11 18:52:03

阅读数 474

评论数 0

什么函数不能申明为虚函数的问题

虚函数可以说是C++中一个十分重要的概念,正因为虚函数的存在,它通过动态联编(迟联编译)让我们实现了多态! 虚函数必须是类的非静态成员函数,前面+virtual关键字修饰的就是虚函数;它是在程序运行(强调动态)的时候匹配各个对象合适的成员函数。定义了虚函数后可以再派生类中重新定义该虚函数,但是要求...

2016-04-11 18:29:10

阅读数 1709

评论数 0

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