自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (10)
  • 收藏
  • 关注

原创 TCP如何决定每次发送的包的大小

《TCP/IP详解 卷1:协议》中有这么一句话:应用数据会被分割成TCP认为最适合的长度发送。那TCP是怎么得出这个“最适合的长度”的呢?

2013-09-24 11:47:53 3442

原创 动态链接库基础

一:DLL基础1.dll有助于节省内存,如果两个或两个以上的应用程序使用同一个dll,那么该dll只需载入内存一次,以后所有的应用程序就可以共享该dll在内存中的页面。C/C++运行库就是一个绝佳的例子。许多应用程序都会用到C/C++运行库,如果所有的应用程序都链接到C/C++运行库的静态版本,那么诸如_tcscpy,malloc之类的函数会在内存中出现多次。但是,如果这些应用程序链接到C/C

2013-08-12 00:07:52 697

原创 怎么样很好的理解typedef

以前在教材或者博客中,总能看到类似这样的介绍,“typedef定义的不是一个新类型,而是一个类型的别名,比如typedef int size,这里的size就是int的别名”,这样的介绍对错先不管,但一定是会给人误导的;如很多人看了这句话就无法理解下面两个定义了,typedef int A[100],typedef void (*p)(int, int),按之前的介绍的思路,A[100]应该是in

2013-08-08 14:36:56 717

原创 static变量初始化

对static变量的初始化情况做一些记录,以便以后不清楚的时候翻看。struct SimpleStruct { int n; char a[10];};class ClassA{public: ClassA() { a = 10; } int GetA() { return a;

2013-08-04 22:53:34 1041

原创 观察者模式

从《HeadFirst设计模式》上找了几页能说观察者模式适用场景及优势。

2013-07-31 00:23:11 527

原创 类型转换

一:隐式转换内置转换原则:尽可能防止精度损失如:int ival = 0;ival = 3.541 + 3;首先将3转化为double类型,在将6.541转化为int类型C++内置类型转换规则:算术转换:将二元操作符的两个操作数转换为同一类型,并使表达式的值也具有相同的类型。最简单的转换为整体提升:对于所有比int小的整数,包括char、unsigned cha

2013-07-28 22:18:35 605

原创 i += 1; i++; ++i的区别

i += 1;_Myt& operator+=(difference_type _Off){ // increment by integer*(_Mybase *)this += _Off;return (*this);}++i;_Myt& operator++(){ // preincrement++*(_Mybase *)this;retur

2013-07-28 12:30:40 631

原创 代码规范

1.每个区段内的声明通常按以下顺序: typedefs 和枚举 常量 构造函数 析构函数 成员函数, 含静态成员函数 数据成员, 含静态数据成员2.为类中的函数加上const 限定符表明该函数不会修改类成员变量的状态(如class Foo { int Bar(char c) const; };).3.尽可能将函数声明为const.

2013-07-25 15:41:31 651

原创 IP头部结构

IP头部结构 转自:http://www.cnblogs.com/tuyile006/archive/2006/12/25/603185.html       IPv4首部一般是20字节长。在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016。 IPv4提供不同,大部分是很少用的选项,使得IPv

2013-07-22 13:26:00 673

原创 TCP协议

一:TCP服务1.应用数据会被分割成TCP认为最合适的长度发送,应用程序产生的数据报长度将保持不变。2.TCP发出一段报文之后,会启动一个定时器,等待目的端确认;若在超时时间内未收到目的端确认,则会重传数据3.TCP收到另一端的数据后,会回一个确认;确认并不是立即发送,通常是推迟几分之一秒4.若TCP接收端接收到的TCP报文校验和不对,接收端不会回确认,并等待发送端重新发送5.

2013-07-18 14:52:52 540

转载 printf

printf 编辑本段功能c语言中产生格式化输出的函数(定义在 stdio.h 中)。向终端输出(显示器、控制台等)编辑本段用法int printf(const char *format,[argument]);format 参数输出的格式,定义格式为:%[flags][width][.prec][F|N|h|l]type规定数据输出 方式,

2013-07-16 10:31:36 513

原创 HRESULT值意义

名称 说明 值S_OK 操作成功 0x00000000E_UNEXPECTED 意外的失败 0x8000FFFFE_NOTIMPL 未实现 0x80004001E_OUTOFMEMORY 未能分配所需的内存 0x8007000EE_INVALIDARG 一个或多个参数无效 0x80070057E_NOINTERFACE 不支持此接口 0x800040

2013-05-20 15:21:41 618

原创 WSAGetLastError返回值对应错误

在命令提示符下输入:net helpmsg 1xxxx

2013-05-15 20:41:00 827

原创 端口相关?

1.什么是端口?答:在TCP/IP协议中的端口,不是物理意义上的端口,是逻辑意义上的端口。端口是通过端口号来标记的,端口号是0到65535的整数。2.端口的作用是什么?答:同一个IP要提供多个网络服务,就需要用端口来识别。比如80是HTTP服务,21是FTP服务。服务通过占用端口来接收发给该服务的封包和标记该服务发出的封包。3.端口的工作原理?答:端口对应队

2013-05-14 14:38:51 553

转载 HTTP协议详解

FROM:http://blog.csdn.net/gueter/article/details/1524447引言                                        HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1

2013-05-04 23:18:02 487

原创 一锅乱炖之Windbg

1.打印出的栈信息从下往上看,最上面的是最后运行的地方。

2013-04-24 20:27:10 652

原创 C++引用的本质

1.引用不止是目标别名那么简单,它占有内存空间,它有值,它的值其实就是目标地址2.引用自身地址与目标地址并不相同该3.引用本质上就是值为目标地址的常量指针 From:http://hi.baidu.com/wudasgle/item/73a062c3f11a9121c710b2c6

2013-04-23 23:43:54 534

原创 Winsock编程接口

一:Winsok的寻址方式和字节顺序1.sockaddr和sockaddr_in本质上是相同的结构,sockaddr_in为定义的更容易操作而已。struct sockaddr{ u_short sa_family; char sa_data[14];};struct sockaddr_in{ short sin_family; // 地址家族,应为AF_INET

2013-04-20 17:13:32 607

原创 STL之vectr

这几天看了侯捷的《STL源码剖析》的vector相关部分,做一些记录1.vector的内存排列与数组一样是连续的2.vector的迭代器本质就是特例类的指针,如vector::iterator即int*3.vector的size和容量并不相同,容量永远大于等于size;vector会申请多余的内存,以避免每次insert元素时申请释放内存已经拷贝的消耗4.当往vector中inse

2013-04-15 13:33:57 610

原创 HTTP GET和POST区别

1.根据HTTP规范,GET用于获取指定URL(资源标识符)信息,POST用于上传信息到URL对应的服务器2.GET请求的数据会附在URL之后(就是把数据放在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连;   如http://www.baidu.com/login?user=test&password=testtest(当然,百度不可能这么干,只是举个例子);从此也

2013-04-14 01:14:05 628

原创 大小端模式

1.高位字节、低位字节要理解什么是大端模式和小端模式,必须先理解高位字节和低位字节的概念。一个16位的变量为 1111 1111 0000 0000,那么在这16个位置中的前八个就是高位,1111 1111就是高位字节;后八个就是低位,0000 0000就是低位字节。  2.大端模式、小端模式大端模式(Big-Endian)就是将低位字节存放在内存的高地址端,高位字节存

2013-04-13 17:16:24 542

原创 一锅乱炖之C/C++

1.memset是运行时清零,而{0}则是编译时清零2.typedef unsigned int        UINT;   typedef UINT*                  PUINT;以上定义合法。3.可以对引用再次引用4.MIDL_INTERFACE定义接口方法如下:MIDL_INTERFACE("55BCC111-5D80-

2013-04-07 14:30:54 952

转载 HTTP头

From:http://blog.csdn.net/hero7750/article/details/3710611HTTP 头部解释1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。 2. Accept-Charset:   浏览器申明自己接收的字符集   Accept-

2013-04-05 19:25:15 820

原创 TCP/IP头

IP头格式:     版本号 (4位)     IP头长度 (4位)     服务类型 (8位)     数据包长度 (16位)     标识段 (16位)     标志段 (16位)     生存时间 (8位)     传输协议 (8位)     头校验和 (16位)     发送地址 (16位)     目标地址 (16位)     选项

2013-04-05 15:52:53 651

转载 MD(d)、MT(d)编译选项的区别

1、编译选项的位置以VS2005为例,这样子打开:1)         打开项目的Property Pages对话框2)         点击左侧C/C++节3)         点击Code Generation节4)         右侧第六行Runtime Library项目2、各个设置选项代表的含义编译选项包含静态链接的l

2013-04-05 15:46:28 742

原创 原码 反码 补码

位运算是指二进制位的运算,在系统软件中,经常要处理一些二进制位的问题,例如:在进行计算机之间的通讯的时候需要通过某些标志位来进行判断通讯是否成功。  计算机中的存储器就是由许多字节(byte)单元组成的。一般,内存的最小度量单位就叫做位(bit),也叫比特。而一个字节就是由8个二进制位组成,其中,最右边的一位叫做最低位,最左边的一位叫做最高位。  所以,一个16位的整数将在内存中占

2013-04-05 15:45:52 602

原创 编译链接那些事~

总有各种各样的编译链接过程和产生的文件,为加深记忆及方便下次查看,特作记录文件篇:.map:映射文件(.map)包含了正在链接的程序的以下信息1.模块名,是文件的基本名称2.程序头部的时间戳(不是从文件系统中获得)3.程序中组的列表,包含每个组的起始地址(as section:offset),长度,组名和类4.一个公共符号的列表,包含每个地址(as section:offs

2013-04-05 15:45:17 633

原创 类的那些事~

总有一些容易搞错的关于类的小细节,用这篇随笔记录一下~1.类的const成员变量必须也只能在构造函数的参数列表中初始化。

2013-04-05 15:44:51 604

原创 虚表~

虚表(vtable)一直都好像很神秘的样子,今天工作中涉及到虚表,就做下一些记录吧~1.每一个拥有虚函数的类都有一个虚表,注意是虚函数。2.虚表实际上是一个函数指针数组,记录了本类所有虚函数的地址。当类对象调用虚函数时,会根据对应关系从虚表中获得虚函数指针,再去执行函数,这种行为称为晚绑定。3.子类的虚表继承了父类的虚表,如果父类vtable中包含某一项,则子类的vtable中也将包含

2013-04-05 15:44:09 834

原创 静态编译/动态编译 静态链接/动态链接 静态库/动态库

记录一下,下次搞不清可以来看看。静态编译/动态编译静态编译:是指编译器在编译可执行文件的时候,将可执行文件需要调用的对应的动态链接库中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候可以不依赖动态链接库。动态编译:动态编译的可执行文件需要附带一个动态链接库,在执行时,需要调用其动态链接库中的命令。所以其优点是缩小了执行文件本身的体积,另一方面是加快了编译速度。缺点是哪怕是

2013-04-05 15:43:27 796

原创 windbg分析dump

要使用windbg分析dump必须加载正确的符号,可以通过设置Symbols File Path为"D:/Symbols;SRV*D:/Symbols*http://msdl.microsoft.com/download/symbols",当windbg在D:/Symbols中找不到需要的符号时,会自行从http://msdl.microsoft.com/download/symbols下载。

2013-04-05 15:41:54 1484

原创 static_cast操作符

static_cast ( expression )@breif:将表达式expression从当前类型转换为type-id所指类型。@remark:没有运行时的类型检查来保证转换的安全性。static_cast操作符可以被用来一把一个指针变量转换为基类型把一个指针变量转换为派生类型。这样的转换并不总是安全。总之,你可以使用static_cast当你想当你想把数字类型比如enums、

2013-04-05 15:40:11 562

原创 这些文件都是干嘛用的?

新建工程时会自动生成一些文件,编译链接时也会生成各种各样的文件,下面做一些记录及说明~stdafx.h:stdafx.h为预编译头文件。用于包含工程中很多文件需要包含的文件,编译器预先编译包含在stdafx.h中的文件,再以后的编译中使用之前预先编译好的结果,不用再次编译,提高了编译速度(当然,如果stdafx.h或者stdafx.cpp修改了需要重新编译)。

2013-04-05 15:33:50 566

转载 TCHAR char转换

首先是把TCHAR转为char[cpp] view plaincopyprint?//将TCHAR转为char  //*tchar是TCHAR类型指针,*_char是char类型指针  TcharToChar (const TCHAR * tchar, char * _char)  {      int iLength ;

2012-07-18 17:11:33 1461

转载 CString TCHAR string转换

From:http://hi.baidu.com/eamoon2008/blog/item/816f06fba7276f295c6008df.htmlCString->TCHAR*的转化可以用函数GetBuff()函数原型为:LPTSTR GetBuffer( int nMinBufLength );CString str("CString");TCHAR* s

2012-07-18 10:18:33 4874

转载 C++文件操作详解(ifstream、ofstream、fstream)

转载自:http://apps.hi.baidu.com/share/detail/6366155C++ 通过以下几个类支持文件的输入输出:ofstream: 写操作(输出)的文件类 (由ostream引申而来)ifstream: 读操作(输入)的文件类(由istream引申而来)fstream: 可同时读写操作的文件类 (由iostream引申而来)打开文

2012-07-11 12:56:27 840

原创 WTL工程报错

在AboutDlg.h中添加#include "resource.h"在MainDlg.h中添加#include "AboutDlg.h"#include

2012-07-10 11:10:34 402

原创 sockaddr、sockaddr_in的区别与联系

先看下MSDN上怎么说The sockaddr structure varies depending on the protocol selected. Except for thesa_family parameter, sockaddr contents are expressed in network byte order.struct sockaddr { u_

2012-05-22 14:17:47 463

转载 WSAStartup与WSACleanup

WSAStartup与WSACleanupWSAStartup应该与WSACleanup成对使用,WSAStartup的功能是初始化Winsock   DLL,WSACleanup是来解除与Socket库的绑定并且释放Socket库所占用的系统资源。       在Windows下,Socket是以DLL的形式实现的。在DLL内部维持着一个计数器,只有第一次调用WSAStartup才真

2012-05-22 11:22:44 614

转载 使用TELNET手工操作 SMTP/POP 收发邮件

说明:手工录入的用蓝色字体表示,#后的为注释,不可录入。=========先计算BASE64编码的用户名密码,认证登录需要用到===========[crazywill@localhost crazywill]$ perl -MMIME::Base64 -e 'print encode_base64("crazywill");'Y3Jhenl3aWxs[crazywill@

2012-05-21 10:40:20 1209 1

visual assist x破解版(支持VS2010)

visual assist x破解版(支持VS2010)

2013-05-30

procexp(资源管理器多标签工具)

QTTabBar是一款可以让你在Windows资源管理器中使用Tab多标签功能的小工具。从此以后工作时不再遍布文件夹窗口,还有给力的文件夹预览功能,大大提高了你工作的效率。就像IE 7和Firefox、Opera那样的。QTTabBar还提供了一些功能插件,如:文件操作工具、树型目录、显示状态栏等等。

2013-05-30

hfs2.3b271.rar

hfs2.3b271.rar

2013-05-30

dll查看工具depends

dll查看工具depends

2013-05-30

源代码统计工具(完美版)

源代码统计工具(完美版)

2013-05-30

c-free3.5含注册机

c-free3.5含注册机

2013-05-30

WinPcap+中文技术文档+4.0.1.chm

WinPcap+中文技术文档+4.0.1.chm

2012-05-11

求职作品&简历

包含本人两个作品及完整简历 希望能得到一次实习的机会 谢谢~~~~

2012-05-05

Ailurus Linux下非常方便的安装软件工具

Linux下非常方便的安装工具 Linux下非常方便的安装工具 Linux下非常方便的安装工具 Linux下非常方便的安装工具 Linux下非常方便的安装工具

2011-10-23

最全的CButtonST资料

最全的CButtonST资料 最全的CButtonST资料 最全的CButtonST资料 最全的CButtonST资料 最全的CButtonST资料 最全的CButtonST资料

2011-06-04

空空如也

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

TA关注的人

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