快捷搜索:  
ARP      ICMP

ARP ICMP

对于旁观者来说,事物的缺点和优点往往是同时存在的。我很高兴可以向你们显示两 个正规的协议——arp和icmp,当你用一些特殊的方法使用它们的时候,却得到意想不到的结果。 相对于被动攻击(网络监听sniffing)来说,主动攻击使用的并不普遍——许多管理 员都拥有一个网络监听工具,帮助他们管理局域网。在你的LAN中,主动攻击将会给你的生活添 加光彩和乐趣。你知道,仅仅是一些技术细节使得这些角落有些昏暗不明。那么,我们去看看 那里究竟有些是什么。 我们首先描述一下网络欺骗(spoofing)和拒绝服务(Do...

利用C++模板编写的序列化框架

利用C++模板编写的序列化框架

简介 在这个框架中包含了一个序列化的基本框架,一套基本的类型识别系统,可以识别基础类型,复杂类型,自定义类型,STD的容器类型,而且可以这个基础上进行递归的扩展。 可以将复杂的数据结构序列化到文件,并从文件中恢复。 包含了完整的自动单元测试,和测试案例,点此下载。 正文 写这个序列化框架最初是想用在一个大型的项目上,在那个项目中有一些相当复杂的在运行时构建出来的树形数据结构,如果可以将这个内存树序列化起来可以大大节约下次创建的时间。另外在自己做的一些小工具中,有些数据想保存在文件中,以后再从文件中读取,...

C语言实现MATLAB  6.5中M文件的方法

C语言实现MATLAB 6.5中M文件的方法

摘要:本文着重描述了运用MATLAB命令将M文件翻译为C语言程序,并修改为可直接调用的C语言函数的方法,使用该方法所需要注意的方法局限性和MATLAB版本差异的影响。运用该方法将能够使C语言能直接使用MATLAB当中已经完成的数学计算功能,大大扩充了C语言的数学计算功能和开发效率。 关键词:MATLAB;M文件;C语言接口 众所周知,MATLAB是一个功能强大的数学软件,擅长于用矩阵运算完成各种数学功能。但是其程序需要在MATLAB环境下解释执行,效率不高。如果能将它强大的函数库用于C语言,利用C来编译...

C语言高效编程的的四大绝招

C语言高效编程的的四大绝招

引言: 编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。 第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。 例如:字符串的赋值。 方法A:通常的办法: #define LEN 32 char string1 [LEN]; memset (string1,0,LEN); strcpy (string1,"This is a ex...

新手入门:C/C++中枚举类型(enum)

新手入门:C/C++中枚举类型(enum)

如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它! enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔...

新手入门:C++中布尔类型

新手入门:C++中布尔类型

布尔类型对象可以被赋予文字值true或者false,所对应的关系就是真与假的概念。 我们通常使用的方法是利用他来判断条件的真与假,例如下面的代码: #include iostream using namespace std; void main(void) { bool found = true; if (found) { cout "found条件为真!" endl; } } 但是一些概念不清的人却不知道布尔类型的对象也可以被看做是一种整数类型的对象,但是他不能被声明成signed,unsigned,...

c/c++中指针学习的两个绝好例子

c/c++中指针学习的两个绝好例子

对于众多人提出的c/c++中指针难学的问题做个总结: 指针学习不好关键是概念不清造成的,说的简单点就是书没有认真看,指针的学习犹如人在学习饶口令不多看多学多练是不行的,下面是两个很经典的例子,很多书上都有,对于学习的重点在于理解*x和x的理解,他们并不相同,*x所表示的其实就是变量a本身,x表示的是变量a在内存中的地址,如果想明白可以输出观察cout*x"|"x;,当定义了int *x;后对x=a的理解的问题。仔细阅读和联系下面的两个例子我想指针问题就不是难点了! #include stdio.h ma...

C++中建立对象间消息连接的系统方法

C++中建立对象间消息连接的系统方法

用过C++进行过面向对象程序设计的用户都知道,程序中的对象很少单独存在。不考虑对象间的相互作用几乎是不可能的。所以,标识对象间的关系或建立对象间的消息连接是面向对象程序设计的一项重要任务。本文着重从C++程序设计的角度,提出一种建立对象间消息连接的实用方法。如果你想详细了解面向对象程序设计技术,请参阅有关专著。 大家都知道对象是数据和方法的封装体。在C++中,它们分别表现为数据成员和成员函数。程序设计者通过执行对象的各种方法,来改变对象的状态(即改变对象的属性数据)。从而使该对象发生某些“事件”。当一对...

C++高质量编程点滴

C++高质量编程点滴

一、你需要一个函数将一个数组赋值为等差数列,并将会在函数的外部使用它。 不合理: int *GetArray( int n ) { int *p = new int[n]; for ( int i = 0; i n; i++ ) { p[i] = i; } return p; } 合理: void GetArray( int *p, int n ) { for ( int i = 0; i n; i++ ) { p[i] = i; } } 解析: 检查内存泄露的最好办法,就是检查完全配对的申请和释放,在...

从C++到Java——理解面向对象的关键所在

从C++到Java——理解面向对象的关键所在

Java在虚拟机上运行 Java源代码并不是被编译成为普通的机器代码。而是被翻译成为虚拟机可以执行的代码。一个Java解释器最终执行这些代码。这其中没有连接的过程;解释在需要的时候动态的加载一些类; Java是完全面向对象的 Java是一种完全面向对象的语言。这意味着你对任何一个Java对象所做的动作都是通过一个方法实现的。第一点就是,再也没有没有主函数这样的孤立的东西了。取而代之的是,你必须开始用一个对象的看法看待一个程序,一个类的对象。但是这个对象又什么对象呢?大多数Java程序只是简单的通过继承J...

理解内联函数inline在C++中的用法

理解内联函数inline在C++中的用法

在C++中,为了解决一些频繁调用的小涵数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联涵数。 可能说到这里,很多人还不明白什么是栈空间,其实栈空间就是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,如果频繁大量的使用就会造成因栈空间不足所造成的程序出错的问题,涵数的死循环递归调用的最终结果就是导致栈内存空间枯竭。 下面我们来看一个例子 C++ 代码 //程序作者:管宁 //站点:www.cndev-lab.com //所有稿件均有版权,如要转载,...

C++中类的多态与虚函数的使用

C++中类的多态与虚函数的使用

类的多态特性是支持面向对象的语言最主要的特性,有过非面向对象语言开发经历的人,通常对这一章节的内容会觉得不习惯,因为很多人错误的认为,支持类的封装的语言就是支持面向对象的,其实不然,Visual BASIC 6.0 是典型的非面向对象的开发语言,但是它的确是支持类,支持类并不能说明就是支持面向对象,能够解决多态问题的语言,才是真正支持面向对象的开发的语言,所以务必提醒有过其它非面向对象语言基础的读者注意! 多态的这个概念稍微有点模糊,如果想在一开始就想用清晰用语言描述它,让读者能够明白,似乎不太现实,所...