自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(8)
  • 资源 (7)
  • 收藏
  • 关注

原创 数组名和指针的区别

近段时间在整理自己大学几年来学习C++的点点滴滴,写这篇文章源于看林锐博士的《高质量C++指南》时,看到文章直接把指针和数组名视为同一东西,原文为“数组名本身就是一个指针,是一个指针常量,即a等价于int * const a,因此你不能试图修改数组名的值”,摘自第三版127页第7.2.1小节。    自己初学C++时也被数组和指针搞得昏头转向过,通过多方求证和对比实验已把指针和数组弄得稍明白,

2012-02-26 01:04:56 38026 31

原创 recv和send的真正作用

区分应用层的recv,send和内核中套接字的真正读取数据,要知道,TCP协议层是运行与内核当中,而通信是网卡直接的通信,因此,不要认为,没有调用recv就不会有数据,不管调没调用recv,只要对方send,线路上有数据,那么,协议就会从网卡里面读取该数据进内核的socket缓冲区中,而调用recv的真正作用只是把数据从socket内核缓冲区中把数据拷贝到应用层指定的buffer中,仅此而已,对协

2012-02-27 01:29:22 2053 2

原创 区分 WinSock中,closesocket 和 shutdown的作用

如果是shutdown(SD_SEND)则会发送FIN包,这是对协议层产生的影响,此时,协议层会首先把缓冲区中的数据发送出去,最后再发送FIN包,次称为‘从容关闭’或者‘优雅关闭’。而closesocket虽然也会发送FIN包,但是,此时会丢弃掉缓冲区中的数据,导致数据丢失,此称为‘强制关闭’,并且closesocket会使连接释放,并且,系统会释放与该socket相关的资源

2012-02-27 01:28:28 4862

原创 CLOSE_WAIT的产生以及影响和解决方案

今天,做了CoolDown的测试时才发现,C/S架构中,如果服务器先执行主动关闭,则非常有可能导致客户端的socket一直处于CLOSE_WAIT状态,相应的导致服务器端的socket一直处于FIN_WAIT2状态,愿意是,当服务器端执行主动关闭时,发送FIN包,客户端相应ACK,,这个时候,服务器端进入FIN_WAIT2,而客户端进入CLOSE_WAIT状态,如果这个时候,客户端不执行shutd

2012-02-27 01:27:50 3051

原创 面向对象编程的精髓在于将行为绑定在数据上

"面向对象编程的精髓在于将行为绑定在数据上"这句话是经典的,因为我们都知道,面向对象的思想是从面向过程编程中发展而来的,而在早期的面向过程编程语言中,程序是由一组结构体和操作该结构体对象的函数组成,并且,结构体和函数是分开的,离散的,通过在函数参数列表中声明一个结构体指针来和结构体产生关联,这样的关联关系使得数据和函数之间的的关系不够明显清晰,比如:Structtask_struct{

2012-02-27 01:26:04 1938

原创 纯虚析构函数

纯虚析构函数和普通纯虚函数的区别在于,纯虚析构函数需要提供函数的实现,而一般纯虚函数不能有实现,这样的原因在于,纯虚析构函数最终需要被调用,以析构基类对象,虽然是抽象类没有实体。而如果不提供该析构函数的实现,将使得在析构过程中,析构无法完成而导致析构异常的问题Calss A{   public:   A(){}   virtual ~A()=0;}A::~A(){}

2012-02-26 01:19:38 7445 6

原创 虚析构函数

Class A{}ClassB:public A{}ClassC:public B{} 在一般的使用下,如C c;如果存在继承派生关系,当构造一个子类对象时,会先从最上层先调用基类的构造函数构造基对象,然后逐步往下,最后调用子类的构造函数完成子类对象的构造,而当销毁子类对象时,会按照相反顺序,先调用子类的析构函数,然后调用基类的析构函数,最后完成一个对象的析构。注意,这是正常的

2012-02-26 01:06:17 1440

原创 C/C++ 中的0长数组(柔性数组)

在标准C和C++中0长数组如charArray[0]是不允许使用的,因为这从语义逻辑上看,是完全没有意义的。但是,GUN中却允许使用,而且,很多时候,应用在了变长结构体中,如:StructPacket{Int state;Int len;Char cData[0]; //这里的0长结构体就为变长结构体提供了非常好的支持}; 首先对0长数组做一个解释:

2012-02-26 01:03:34 23047 4

Computer Organization and Architecture - Designing for Performance

英文版,William Stallings的杰作,非常全面详细的介绍了计算机系统的组织结构与原理,配合各种图、例子,表,非常好的一本书

2012-10-30

基于TCP/IP的Linux文件传输系统

基于Tcp/IP的Linux文件传输系统,分为服务器和客户端模块,共有账号管理,信息管理,资源管理,上传,下载、查找、浏览等基本功能,且支持断点续传,非常棒的一个功能,且,在传输过程中,用OpenSSL对数据进行加密,增加了安全性,系统中涉及到多线程,线程同步,线程池,网络通信,协议设计等知识,是本人和其他极为兄弟一起完成的练习作品,也是一个不错的学习例子,分享给大家一起学习

2011-08-18

C语言常用用Python重写100例

对于常用的C语言函数,如max,sort,prime等常用函数,用Python重写,达到练习的目的,例子非常丰富完整,如果能够从头作完,绝对能成为一个Python高手

2011-08-18

python_3.1官方入门指南中文版

学习python非常棒的一本书,且书的目录有按章节模块制作成树形列表,方便阅读。 本书由浅入深,从语言基础到数据类型数据结构,再到强大的模块,像urllib,zlib等,逐一介绍,可以当做学习资料,也可以当做手册来查阅

2011-08-18

软件需求分析模板 实际例子讲解

用一个例子讲解了软件开发过程中的需求分析,建模和设计,文档清晰

2010-08-22

Inside C++ Object Model

C++ 对象模型,对深入了解C++对象模型有很好的帮助,英文版,对专业英语也有帮助

2010-05-08

空空如也

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

TA关注的人

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