自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 大教堂和市集(转)

大教堂和市集 Eric Raymond HansB翻译 一. 大教堂和市集 Linux的影响是非常巨大的。甚至在5年以前,有谁能够想象一个世界级的操作系统能够仅仅用细细的Internet连接起来的散布在全球的几千个开发人员有以业余时间来创造呢? 我当然不会这么想。在1993年早期我开始注意Linux时,我已经参与Unix和自由软件开发达十年之久了。我是八十年代中期GNU最早的几个参与者之一。我已经在网上发布了大量的自由软件,开发和协助开发了几个至今仍在广泛使用的程序(Nethack

2011-02-28 15:13:00 910

原创 (转)程序员的自我修养

什么是好的程序员?是不是懂得很多技术结节?还是懂底层编程?还是编程速度比较快? 我觉得都不是。 对于一些技术结节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。 我认为好的程序员应该有以下几个方面的素质: 1、有钻研精神,勤学善问,举一反三。 2、积极向上的态度,有创造性思维。 3、与人积极交流沟通的能力,有团队精神。 4、谦虚谨慎,戒骄戒燥。 5、与出的代码质量高,包括:代码的稳定、易读、规范、易维护、专业。

2011-02-28 14:33:00 421

原创 内容过滤中关键字的匹配函数

/* Add a search pattern to a search object, and associate pattern data to it */ int         qsearch_add_pattern(qsearch_obj_t * self, unsigned char *pattern, int len,             void *ptrn_data, int type) {                    if ((1 statics->suppo

2011-02-14 17:45:00 2238

原创 (转)问题:假设一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(既不是第一个,也不是最后一个节点),请将该节点从单链表中删除。

问题:假设一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(既不是第一个,也不是最后一个节点),请将该节点从单链表中删除。链表结点定义如下: struct ListNode {          int       m_nKey;          ListNode* m_pNext; }; 解答:假设给定的指针为pCurrent,ListNode* pNext = pCurrent->m_pNext; 由题意知,pCurrent指向链表的某一个中间节点,因此pCurr

2011-02-14 15:35:00 6501 2

原创 已知某二叉树的某两种遍历序列,求另一种遍历序列面试题解法总结(转)

某二叉树的后序遍历序列为dabec,中序遍历序列为debac,则前序遍历序列为 。 A、acbed B、 decab C、 deabc D、 cedba 解法如下: 先在两种遍历序列中找临近的两个或三个字符(内容相同,但顺序可能相同或者不同),如上例,从右向左找,先找出的是ab,根据后序和中序,可还原一棵子树是b是左孩子,a是根结点,然后把还原的这棵子树作为一个新的整体,再按照刚才同样的规则与其他字符结合,进一步还原成一个更大的子树,最终还原成一棵完整的树。就

2011-02-14 14:47:00 3185 1

原创 UDP包的最大长度理论上是 64K, 但是实现上一般是 8K.

None

2011-02-12 14:51:00 2754

原创 TCP三次握手 四次挥手全过程

TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),

2011-02-12 14:21:00 560

原创 递归实现合并两个有序链表成一个链表依然有序

Node * MergeRecursive(Node *head1 , Node *head2) {     if ( head1 == NULL )         return head2 ;     if ( head2 == NULL)         return head1 ;     Node *head = NULL ;     if ( head1->data data )    {       

2011-02-12 10:22:00 598

原创 一个单向链表,只知道某个节点的指针p,但是p不是尾节点,请编程删除节点p.

既然p不是尾结点那么就另p指向结点的内容等于 它后面结点的内容p->data = p->next->data;然后p->next = p->next->next;free(p->next);

2011-02-12 00:43:00 1313

转载 逆转单链表

<br />//逆转单链表 <br />struct node *reverse_LList(node *head) <br />{ <br />//以p作为当前结点处理,头结点为逆转前的头结点        <br />     struct node *p,*q,*temp; <br />     if(head == NULL) cout << "空表" << endl;//头结点为0,空表  <br />     q = head;            //q指向头结点  <br />     p

2011-02-12 00:38:00 817

转载 查找整数数组中第二大的数

<br />题目:写一个函数找出一个整数数组中,第二大的数。【Mirosoft】<br />PS:1、” 66,66,66,66,66 ”,则没有第二大数。<br />2、” 99,99,88,86,68,66 ”,则最大数是88。<br />下面我先给出查找最大数字的程序:<br />int GetFirstMaxNumber(int buffer[])<br />{<br />    int i,max;<br /> <br />    max = buffer[0];<br />    for(i=1

2011-02-12 00:36:00 6198 1

原创 linux系统的进程间通信有哪几种方式,及优劣?

<br /># 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。<br /># 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。<br /># 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步

2011-02-12 00:29:00 854

原创 现在最常用的进程间通信的方式有:管道,信号,信号量,消息队列,共享内存。

<br />所谓进程通信,就是不同进程之间进行一些"接触",这种接触有简单,也有复杂。机制不同,复杂度也不一样。通信是一个广义上的意义,不仅仅指传递一些massege。<br />  <br />  他们的使用方法是基本相同的,所以只要掌握了一种的使用方法,然后记住其他的使用方法就可以了。<br />  <br />  1. 信号<br />  在我学习的内容中,主要接触了信号来实现同步的机制,据说信号也可以用来做其它的事情,但是我还不知道做什么。<br />  <br />  信号和信号量是不同的,他们虽

2011-02-12 00:28:00 1655

原创 关于sizeof和strlen !!!

<br />已知 char *str1="absde";<br />     char str2[]="absde";<br />     char str3[8]={'a',};<br />     char ss[] = "0123456789";<br /><br />为什莫 sizeof(str1)=4<br />      sizeof(str2)=6;<br />       sizeof(str3)=8;<br />       sizeof(ss)=11<br /> <br />首先说明一点

2011-02-12 00:25:00 442

转载 一个由c/C++编译的程序占用的内存分几个部分

一、预备知识—程序的内存分配<br />       堆(heap)和栈(stack)是C/C++编程不可避免会碰到的两个基本概念。首先,这两个概念都可以在讲数据结构的书中找到,他们都是基本的数据结构,虽然栈更为简单一些。       在具体的C/C++编程框架中,这两个概念并不是并行的。对底层机器代码的研究可以揭示,栈是机器系统提供的数据结构,而堆则是C/C++函数库提供的。      具体地说,现代计算机(串行执行机制),都直接在代码底层支持栈的数据结构。这体现在,有专门的寄存器指向栈所在的地址,有专门

2011-02-12 00:22:00 2451

原创 在windows 用ssh访问linux 提示用户名密码不对,是因为/root/.ssh/目录下少authorized_keys2和id_dsa这两个文件

<br />在windows 用ssh访问linux 提示用户名密码不对,是因为/root/.ssh/目录下少authorized_keys2和id_dsa这两个文件

2011-02-12 00:21:00 2610

原创 linux平台安全开发工程师要求

linux平台安全开发工程师 岗位职责: 1. 负责新产品内核部分研发,主要是网络、安全框架、和虚拟文件系统部分。 2. 根据需求对现有产品进行修改,优化和新功能开发。 岗位要求: 1. 本科以上学历,计算机相关专业毕业; 2. 熟练掌握linux下c/c++语言编程 3. 一年以上linux内核开发经验,有lsm和防火墙开发经验者优先 4. 对Linux内核研究、优化、开发 及计算机网络有浓厚兴趣,具备内核某一领域研究经验 5. 熟练掌握tcp/ip网络协议栈,熟悉网络编程,网络安全

2011-02-11 18:08:00 976

tenda-v4.0

windows和linux下的USB无线上网驱动 腾达tenda v4.0

2013-03-18

vc++6.0开发的抓包软件

IP协议分析工具ipdog开源代码 研究TCP/IP协议分析

2012-01-11

Java编程思想第四版完整中文高清版

本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel具有亲和力的文字和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。 第4版特点: ● 适合初学者与专业人员的经典的面向对象叙述方式,为更新的Java SE5/6增加了新的示例和章节。 ● 测验框架显示程序输出。 ● 设计模式贯穿于众多示例中:适配器、桥接器、职责链、命令、装饰器、外观、工厂方法、享元、点名、数据传输对象、空对象、代理、单例、状态、策略、模板方法以及访问者。 ● 为数据传输引入了XML,为用户界面引入了SWT和Flash。 ● 重新撰写了有关并发的章节,有助于读者掌握线程的相关知识。 ● 专门为第4版以及Java SE5/6重写了700多个编译文件中的500多个程序。 ● 支持网站包含了所有源代码、带注解的解决方案指南、网络日志以及多媒体学习资料。 ● 覆盖了所有基础知识,同时论述了高级特性。 ● 详细地阐述了面向对象原理。 ● 在线可获得Java讲座CD,其中包含Bruce Eckel的全部多媒体讲座。 ● 在www.MindView.net网站上可以观看现场讲座、咨询和评论。

2012-01-11

C语言实现Vigenere加解密

传统加密技术对于当今的网络安全发挥不了大作用,但每一本讲述密码学的书的开头都会率先介绍它们,因为它们是密码学的基础,是密码学的历史。Vigenere密码就是一种传统加密技术,它是多表代换密码,能够有效改进单表代换密码的词频分布特征问题。详细介绍请参考密码学相关书籍。

2012-01-06

北航李老师密码学与网络安全精讲

以通俗易懂的方式全面阐述了密码学与计算机网络安全问题所涉及的各方面内容,从全局角度介绍了计算机网络安全的概念、体系结构和模式。《密码学与网络安全》以因特网为框架,以形象直观的描述手法,详细地介绍了密码学、数据通信和网络领域的基础知识、基本概念、基本原理和实践方法。

2012-01-06

C语言实现凯撒和维吉尼亚加解密

C语言实现凯撒和维吉尼亚附带密钥的加解密,是计算机网络与信息安全大作业

2011-12-29

linux 与windows转输工具

linux与windows转输工具 linux与windows转输工具 linux与windows转输工具 linux与windows转输工具

2010-03-11

串口调试器最新版本V2.00

最新版本V2.00 最简单实用的串行通讯 开发测试工具

2009-09-03

socket编程中select的使用

socket编程中select的使用Select在Socket编程中还是比较重要的,可是对于初学Socket的人来 说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式 block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用 Select就可以完成非阻塞(所谓非阻塞方式non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不 同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生,而进程或线程继续执行,所以效率较高)方式工作 的程序,它能够监视我们需要监视的文件描述符的变化情况——读写或是异常。下面详细介绍一下!

2009-03-19

空空如也

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

TA关注的人

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