自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (7)
  • 收藏
  • 关注

原创 redat vi 中文乱码解决

第一步:~/.bash_profile 尾部加入以下内容,并source ~/.bash_profileexport PATHexport LANG=zh_CN.UTF8export LC_CTYPE="zh_CN.gbk"export LC_NUMERIC="zh_CN.gbk"export LC_TIME="zh_CN.gbk"export LC_COLLATE="zh

2013-07-22 10:40:32 1162

原创 UVA 105 Skyline Problem

此题不难,对问题规模做了限制,最大坐标不大于10000,使用一个数组遍历即可#题外话,UVA的格式说明不是很清楚,出了两次Presentation error#include int main(){ int l,h,r,num,i=0; int sky_line[10001] = {-1}; int l_min=10001,r_max

2013-05-27 21:36:35 1880 1

转载 Linux/Unix目录结构的来历

Unix(包含Linux)的初学者,常常会很困惑,不明白目录结构的含义何在。举例来说,根目录下面有一个子目录/bin,用于存放二进制程序。但是,/usr子目录下面还有/usr/bin,以及/usr/local/bin,也用于存放二进制程序;某些系统甚至还有/opt/bin。它们有何区别?长久以来,我也感到很费解,不明白为什么这样设计。像大多数人一样,我只是根据《Un

2012-03-05 09:12:44 1183

原创 一步一步开发sniffer(Winpcap+MFC)(六)千呼万唤始出来,不抱琵琶也露面——将解析数据写到GUI上

最后一章是要将解析数据写的GUI上,先来回顾一下GUI长什么样,这样就对要在界面上写什么数据心中有数了,如下这两图: 可以看出,要写在GUI上的数据主要有五个部分:1、  参数设置:网卡接口、过滤项2、  数据包捕获列表,显示数据包简要信息3、  树形目录,显示被选中的数据包头详细信息4、  文本框,显示被选中的数据包十六进制信息5、  统计信息:各

2012-03-03 22:40:35 13706 5

原创 一步一步开发sniffer(Winpcap+MFC)(五)莫道无人能识君,其实我懂你的心——解析数据包

前文已经讲过,解析数据包主要通过analyze_frame()这个函数实现的,实际上并非这个函数完成了所有的功能,其实从名字就可以看出,它只是完成了对“帧”的解析,也就是链路层数据的解析,还有analyze_arp()、analyze_ip()、analyze_ip6()、analyze_icmp()……等来完成其他协议层的解析工作。为什么会这样定义?熟悉协议栈工作流程的都知道,数据是由应用层

2012-03-03 20:53:37 15005 2

原创 一步一步开发sniffer(Winpcap+MFC)(四)要想从此过,留下协议头——各层网络协议头的实现

这一章实际上没什么讲的,就是把协议的标准搞懂,然后用数据结构将其实现就行。直接上代码吧,由底层到高层逐步实现。这些协议头是怎么使用的,将在下一章做出解释。#ifndef PROTOCOL_H#define PROTOCOL_H#define PROTO_ICMP 1#define PROTO_TCP 6 #define PROTO_UDP 17 #define

2012-03-03 20:05:22 12547 3

原创 一步一步开发sniffer(Winpcap+MFC)(三)安得广厦千万间,先画蓝图再砌砖——搭建winpcap抓包框架

采用天朝流行的话,“由于种种原因”本人已接近一年半没有写博客了,最近回想起来,很多东西即便再小也得慢慢积累,更何况前两章之后就没有了,很多网友表示比较期待后面的文字,不能做一个太监了事,打算还是继续写完,给被吊了胃口这么久的朋友表示深深地歉意。这一章要讲的是winpcap核心编程,首先来看一下sniffer程序的整体框架,程序主要由三个部分构成,其示意图如下:其中,winpcap对

2012-03-03 19:24:04 27426 8

原创 使用trashcan恢复linux下误删的文件

在linux命令行下,经常会误操作删除一些东西,如果加了-f参数,又是重要的文件那就等着杯具吧,本人曾经将一个月的工作误删了,后来试了试一些文件恢复工具,但都操作复杂,比较麻烦,不了了之,只有重做一次,最近经人推荐试用了下Trash can这个工具,感觉比较好用,故推荐之下载链接https://github.com/comwt/trashcan1、 安装#tar –zxf trashc

2012-03-03 14:18:58 6512 1

原创 一步一步开发sniffer(Winpcap+MFC)(二)掀起你的盖头来,让我来画你的脸——用MFC开发GUI

         书接上回,由于前段时间较忙,都没心思来写这个了,两章之间的间隔有点久了,后来……*&&……%*&……发生了很多事,又重装了系统,还重装了VS,现在是VS2010,前面说的是基于VS2008的,但是没关系,二者大同小异,没太大差别,不影响理解,有不便的请原谅(不想再装VS2008了,装一次要好久- -!)         扯多了,进入正题,本节主题是写GUI,下面开始。         第一步,打开VS,新建工程,选择“MFC应用程序”,如下图:         输入工程名,我这里命名为li

2010-12-26 01:25:00 19379 8

原创 一步一步开发sniffer(Winpcap+MFC)(一)工欲善其事,必先配环境——配置winpcap开发环境

0、说在前面的话1) 本文将以一个初学者的角度,一步一步几乎是从0开始讲述如何完成一个基于winpcap+MFC的sniffer(嗅探器)当然我指的“0”并不是指连编程都不会,如果C/C++不知为何物那么还是别看这篇文章了,本文只有那么几点小小要求:         a.懂基本的编程语法,只会java的没关系,语言这东西语法差别不大,看着看着就懂了         b.懂一点点网络知识

2010-10-19 12:09:00 42814 27

转载 C语言迷题

<br />转载之前的话:原文写得很好,但是格式有点乱,看起来很不会舒服,本人稍作编辑,好文章得过得好看嘛:)<br /> <br />这几天,本站推出了几篇关于C语言的文章如下所示:<br />      语言的歧义       <br />      谁说C语言很简单? <br />      6个变态的C语言Hello World程序       <br />      如何加密/弄乱C源代码<br />      C语言的谜题 <br /><br />       我们可以看到很多C语言相关的一些东

2010-10-15 12:17:00 1136 1

转载 解决man不到pthread_create

<br /> <br />又遇到了ubuntu man手册不全的问题,这回是多线程库,用下面两句即可搞定:<br /> <br />     sudo apt-get install glibc-doc <br />     sudo apt-get install manpages-posix-dev<br /> <br />原文:http://www.coder4.com/archives/165

2010-09-19 14:39:00 1732 1

原创 exec函数族解疑

      在上一篇文章:自己实现popen函数中使用了exec族中的execvp()函数实现了对输入命令的的执行,众所周知,exec族是一个相当庞大的族,一共有六个成员,但这六个成员实在长得太像,其用法也容易让人混淆,此文将以一个初学者的角度来解析这六个成员的用法(因为我就是一个初学者:)。本文将着重解决三个问题:怎么记,什么含义,怎么用。一、怎么记      首先看exec函数族六成员,如下:      #include int execl(const char *pathname,const ch

2010-09-17 21:31:00 1104

原创 自己实现popen函数

<br />   闲来无事,自己实现了popen函数mypopen,后来查看了popen函数的源码发现自己实现的与其相差无几,本函数与linux中的实现最大的不同是不需要用专门的pclose()函数来关闭文件指针,用普通的fclose()即可,linux实现的代码也会给出在下文,可以对比一下其中差异。<br />  <br />   主要通过pipe管道实现,具体思路如下: <br />        1、使用pipe()建立管道<br />        2、使用fork()创建子进程<br />    

2010-09-17 20:03:00 12793 4

原创 ubuntu man 手册不全解决方法

<br />      本人经常在ubuntu下做网络编程,每一次安装ubuntu后,都发现居然man一下bind()之类的函数都不能行,以前都是瞎猫碰死耗子弄好了能查,今天又碰到这个问题了,去网上查了下资料,原来ubuntu本身的man手册是不全的,总结了下,在新立得里面把下面几个安装上就可解决问题了:<br />     (注:本人使用的是ubuntu9.10,下面的文件可能版本稍有区别,但大同小异)           manpages       manpages-dev       libstdc

2010-09-10 20:28:00 2954

转载 sockaddr与sockaddr_in关系

首先来看sockaddr,sockaddr是通用地址结构,目的是为了使不同格式的地址能够被传入到套接字函数。但是通用只是规定了名字和两个主要字段:struct socketaddr {sa_family_t sa_family;char sa_data[];...};至于sa_data的长度和剩余的扩展字段都是由各实现自己定义。在linux中是这么定义的:struct socketaddr{sa_family_t sa_family;char sa_data[14];};   其次来看sockaddr_in

2010-09-10 20:17:00 1893

原创 inet_ntoa的一个典型误用

 在做linux下面的网络编程时写了如下一段程序 //(省去N行……) char *source,*dest; struct in_addr saddr; struct in_addr daddr; saddr.s_addr = (in_addr_t)cmd.source.v_uint; //cmd.source.v_uint装载了由字符串通过inet_aton()转化成

2010-04-08 11:39:00 19483 4

原创 Ubuntu下从零开始用Iptables L7彻底封QQ

       上一篇文章已经介绍了在Ubuntu9.04下如何通过升级内核到2.6.30.5配置iptables L7,现在就开始来用L7从零开始,在Ubuntu下彻底封QQ。 整体思路:我们的目的是控制QQ通信,而要控制一种服务就得了解它的工作流程和方式。众所周知,所有的网络通信都是通过数据包在网络之间传输实现,因此,想了解一个服务的整个工作流程和方式,就需要通过数据包来发掘。所以我

2010-03-19 10:33:00 8008

原创 Ubuntu9.04配iptables L7封QQ详细过程

 2010.3.15       最近做一个项目,linux下基于网络行为的防火墙,得知iptables Layer7能够在应用层实现封QQ、MSN、迅雷等应用,因此打算在自己的机器上配置一下iptables L7,以借鉴如何识别应用,并对这些应用进行有效控制。配了接近五天,昨晚终于把L7配好了(也终于睡了个好觉),今天折腾了一上午也终于把QQ成功封了,其中曲折说来话长,我还是长话短说吧。  

2010-03-17 21:56:00 4368 2

转载 [转]理解C++虚函数绝好的文章

  0.说明      一个多月前微软实习生来了一次电面,第一个问题便问了虚函数和纯虚函数的区别,由于学了太久了(大一学的,而且我的记性真的很差- -!)没能回答上来,在此后的一个多小时的电面中,对方再未问更深的技术问题,只是问了做了哪些项目云云。最后面试结束,面试官让我问他是否还有什么问题,我问他,为什么无选的是一个开发类的岗位,但除了第一个问题之外,再无编程、技术方面的问题了,他说第一

2010-01-14 01:27:00 1234

转载 [转载] [强烈推荐]大牛对计算机读研的看法

 前言:这是一篇师兄分享的文章,一篇真正的好文章,写得很实在也很精辟,与我昨天对于毕业设计的想法不谋而合,以至于我还没看完就有冲动发到这里来,希望这篇文章能哪怕被多一个人看到,同时非常感谢我的师兄,分享了这么一篇好文章!  谈谈我对攻读计算机研究生的看法      就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。      如果你有实际开发工作经验,感觉自己

2010-01-11 23:51:00 4202 2

原创 C语言中不用宏实现变长参数函数的原理及实现

 一、前言      我们通常编写的函数都是参数固定的,多了少了都会有错,但是有时候我们是不能确定预先需要多少个参数的,而变长参数函数恰恰就能解决我们的问题。在UNIX中,提供了变长参数函数的编写方法,主要是通过va_list对象实现, 定义在文件stdarg.h中,变长参数函数的编写有一个固定的模板,模板很简单(见下代码), 定义时, 变长参数列表通过省略号‘...’表示, 因此函数定义

2010-01-11 17:09:00 2724 1

原创 vfork创建的子进程与父进程地址空间关系

在《UNIX环境高级编程》一书的第八章中,有一道课后习题如下:回忆图7-3典型的存储空间布局。由于对应于每个函数调用的栈帧通常存储在栈中,并在调用 vfork后,子进程运行在父进程的地址空间中,如果不是在main函数中而是在另一个函数中调用vfork,以后子进程从该函数返回时,将会发生什么情况?作者Rich Stevens是一位大师,留下这么一题必有其深意,于是结合《深入理解计算机系统》中

2010-01-02 23:40:00 5332 2

原创 读书笔记——《UNIX环境高级编程》第七章_ 进程环境

第七章 进程环境各位观众,今天节目的主要内容有:1、  当执行程序时,其main函数是如何被调用的?2、  命令行参数是如何传送给执行程序的?3、  典型的存储器而已是什么样式?4、  如何分配另外的存储空间?5、  进程如何使用环境变量?6、  各种不同进程终止方式另外,本期特别报导:         longjmp和setjmp函数以及它们与栈的交互作用;进

2009-12-23 08:40:00 1077

原创 读书笔记——《UNIX环境高级编程》第六章_系统数据文件和信息

 第六章 系统数据文件和信息系统正常运行需要使用大量系统数据文件,其中,所有UNIX系统都有的是:口令文件、组文件,大多数系统都提供的是:登录账户记录、系统标识、时间和日期例程,同时还有其他一些常用系统数据文件如:BSD网络软件有一个记录各网络服务器所提供服务的数据文件(/etc/services)、记录协议住处的数据文件(etc/protocols)等。现在来按这个顺序讨论这些文件。

2009-12-18 21:40:00 1376

原创 读书笔记——《UNIX环境高级编程》第一章_UNIX基础知识

第一章  UNIX基础知识1.2UNIX体系结构         UNIX体系结构如下图,系统内核接口被称为系统调用,公用函数库构建在系统调用接口之上,应用软件可以使用公用函数库,也可以使用系统调用。shell是一个特殊的应用程序,它为运行其他应用程序提供了一个接口。1.3登录         1.登录名         用户输入登录名及口令之后,系统在/etc/passw

2009-12-14 13:12:00 1348

原创 读书笔记——《深入理解计算机系统》第三章_程序的机器级表示(二)

3.6控制3.6.1条件码l  除整数寄存器外,CPU还有一级单位个条件码,其中最有用的条件码是:                   CF:进位标志,可以用来检测无符号操作数溢出                   ZF:零标志                   SF:符号标志,最近的操作得到的结果为负数                   OF:溢出标志,最近操作导致

2009-12-10 18:17:00 1856

原创 读书笔记——《深入理解计算机系统》第三章_程序的机器级表示(一)

    前言:已经大四,没有去找工作,选择了保研,之所以这样选择,有三个原因,一、刚进校时,听说保研都是牛人才能行的事,所以一心努力保研;二、2008年开始,经济危机比较严重,工作不好找,虽然软件专业要找一份工作还是比较容易,但好工作的机会少了很多,再多学习几年,规避下风险;三、三年多的本科学习下来,虽然简历看起来还像回事,但内心很虚,感觉真才实学没多少,都是略懂皮毛,做了太多表面工作,没有特长,

2009-12-02 22:34:00 4400 2

原创MFC+WinpCap网络嗅探器(sniffer)

原创MFC+WinpCap网络嗅探器,界面友好,支持协议包括:IPv4、IPv6、ARP、ICMP、TCP、UDP、HTTP,可至此网址预览效果http://blog.csdn.net/litingli/article/details/5950962

2012-03-04

opengl实现的简单机器人

opengl实现的简单机器人,注释详细,采用的是NEHE的代码框架,适合初学者看,在VC6下打开dsw工程就行了(我用VS2008打开过,所以文件中掺杂有.sln文件)

2009-04-05

源码用Silverlight做广告图片轮播

用Silverlight做广告图片轮播,有兴趣的可以下载看看

2009-04-04

windows API 一日一练

如题,关于windows API使用的一百个例子,很全

2008-08-02

(21-32)一步一步学习silverlight2 beta1打包(TerryLee)

前面已经介绍过了,参看1-20吧

2008-08-02

(1-20)一步一步学习silverlight2 beta1打包(TerryLee)

TerryLee大侠的一步一步学习silverlight2 beta1教程打包,从他的blog上弄下来的,方便学习,有兴趣学习sliverlight的可以下载,注意这个教程是基于beta1版本的,和beta2以及即将发布的正式版差别较大,不过还是很好的一个东西

2008-08-02

空空如也

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

TA关注的人

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