自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 Linux下用C语言实现守护进程

守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任 务。比如,作业规划进程crond,打印进程lpd等。      守护进程的编程本身并不复杂,复杂的是各

2016-05-26 15:31:39 13112 2

转载 WIFI基础知识介绍

这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习。因为无线网络中涉及术语很多,并且许多协议都是用英文描述,所以有些地方翻译出来会有歧义,这种情况就直接英文来描述了。 主要内容:一、基本概述二、实践基础三、一些原理四、补充五、其它  一、基本概述 ============================1、有线和无

2016-05-25 17:28:17 1116

原创 不同svn路径下的文件夹内容替换

在项目中,需要将一个svn上的文件checkout下来,替换另一个svn上的对应文件。如果直接cp过去,会发现替换的文件无法commit到新svn。通过svn info命令发现,文件的svn路径依然是原来svn的。      碰到该问题,可通过如下步骤进行操作:(自己做个记录,以备将来复用)1、删除文件下名为.svn的隐藏文件。.svn文件是subversion的版本控制信息文件,.svn

2016-05-25 12:48:02 4355

转载 网桥原理(收藏)

1  前言本文的参考分析的源代码版本是2.6.15,我是边学习边总结,学习的过程中得益于Linux论坛(http://linux.chinaunix.net/bbs/)上大侠们总结分析的文档,他山之石可以攻玉,学习过程中我也会边学边总结,开源的发展在于共享,我也抛块砖,望能引到玉!由于自身水平有限,且相关的参考资料较少,因此其中的结论不能保证完全正确,如果在阅读本文的过程中发现了问题欢迎及

2016-05-24 20:17:17 1378

转载 集线器与网桥的原理和作用

本文内容整理自网络。包含的概念有:集线器(hub), 网桥。-----HUB集线器(HUB)属于数据通信系统中的基础设备,它和双绞线等传输介质一样,是一种不需任何软件支持或只需很少管理软件管理的硬件设备。它被广泛应用到各种场合。集线器工作在局域网(LAN)环境,应用于OSI参考模型第一层,因此又被称为物理层设备。集线器内部采用了电器互联,当维护LAN的环境是逻辑总线或环型结构时

2016-05-24 20:14:52 10341

转载 初学Makefile

概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会

2016-05-23 20:51:03 338

转载 svn实现批量添加和删除文件

我经常会一次往Subversion里添加一批文件。在使用命令行做这件事时,你必须指定所有想要添加的文件名。如果文件不多的话这还不算太糟糕,但如果你要添加20个文件,那就费事了。当然你也可以用通配符,但这样一来就可能匹配到已经在版本控制之下的文件(这不会有什么损害,只不过会输出一堆错误信息,可能会跟别的错误信息混淆)。为了解决这个问题,我写了一行简单的bash命令:  svn st | grep

2016-05-22 16:54:58 4125

原创 SVN常用命令汇总

1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain  --username qinxiaohui简写:svn co 2、往版本库中添加新的文件svn add file例如:svn add test.php(添

2016-05-22 16:52:14 330

原创 C语言实现ping功能(查看设备联网状态)

gethostbyname()函数说明——用域名或主机名获取IP地址    包含头文件    #include     #include     函数原型    struct hostent *gethostbyname(const char *name);    这个函数的传入值是域名或者主机名,例如"www.google.cn"等等。传出值,是一个hostent

2016-05-18 17:00:05 5149 1

转载 HTTP请求报文和HTTP响应报文

HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。HTTP请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。or<request-line><headers><

2016-05-16 17:46:21 1419

转载 HTTP协议报文详解

学习WEB开发需要对HTTP协议熟悉,下面直接进入主题。一、什么是报文报文,是网络中交换和传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。HTTP报文是由一行一行简单的字符串组成的。HTTP报文都是纯文本,不是二进制代码,所以人们可以很方便地对其进行读写。如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹

2016-05-16 17:45:22 684

转载 Wireshark Filter的用法

做应用识别这一块经常要对应用产生的数据流量进行分析。抓包采用wireshark,提取特征时,要对session进行过滤,找到关键的stream,这里总结了wireshark过滤的基本语法,供自己以后参考。(脑子记不住东西)wireshark进行过滤时,按照过滤的语法可分为协议过滤和内容过滤。对标准协议,既支持粗粒度的过滤如HTTP,也支持细粒度的、依据协议属性值进行的过滤如tc

2016-05-16 16:39:36 1703

原创 Linux的system()和popen()差异

Linux的system()和popen()差异1. system()和popen()简介在linux中我们可以通过system()来执行一个shell命令,popen()也是执行shell命令并且通过管道和shell命令进行通信。 system()、popen()给我们处理了fork、exec、waitpid等一系列的处理流程,让我们只需要关注最后的返回结果(函数的返回值)即可。

2016-05-16 10:17:35 2516

转载 释放linux内存命令

总有很多朋友对于Linux的内存管理有疑问,之前一篇[转]理解Linux的性能日志似乎也没能清除大家的疑虑。而在新版核心中,似乎对这个问题提供了新的解决方法,特转出来给大家参考一下。最后,还附上我对这方法的意见,欢迎各位一同讨论。     当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没

2016-05-13 08:59:50 350

原创 mount命令详解

除了挂载本机(硬盘、USB存储器、CD、DVD等)或远程(NFS、Samba等)文件系统,mount命令还可以查看已挂载的文件系统。下面的示例使用mount命令列出已挂载文件系统: $ mount                       列出已挂载的远程和本机文件系统 /dev/sda7 on / type ext3 (rw)  proc on /proc type pro

2016-05-11 20:28:33 2280

转载 初学shell(必须掌握的20条指令)

玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理Li

2016-05-11 20:16:21 2900

转载 wifidog源码分析 - 认证服务器心跳检测线程

引言  但wifidog启动时,会自动启动认证服务器心跳检测线程,此线程默认每隔60s与认证服务器交互一次,会将路由器的信息(系统启动时长,内存使用情况和系统平均负载)告知认证服务器,并通过一个"ping"字符串作为信号,而当认证服务器接收到此数据包后,会返回一个"pong"给路由器,具体我们看看代码。 代码片段1.1 此段代码很简单,就是调用ping函数,然后等待60s

2016-05-11 19:59:42 729

转载 wifidog源码分析 - 客户端检测线程

引言  当wifidog启动时,会启动一个线程(thread_client_timeout_check)维护客户端列表,具体就是wifidog必须定时检测客户端列表中的每个客户端是否在线,而wifidog是通过两种方式进行检测客户端在线情况,一种是定时通过iptables获取客户端出入总流量更新客户端时间,通过最近更新时间进行判断(有新的出入流量则更新客户端时间,之后使用最新客户端时间与当前时

2016-05-11 19:58:45 495

转载 wifidog源码分析 - 用户连接过程

引言  之前的文章已经描述wifidog大概的一个工作流程,这里我们具体说说wifidog是怎么把一个新用户重定向到认证服务器中的,它又是怎么对一个已认证的用户实行放行操作的。我们已经知道wifidog在启动时会删除iptables中mangle、nat、filter表中的所有规则,并在这三个表中添加wifidog自己的规则,其规则简单来说就是将网关80端口重定向到指定端口(默认为2060),

2016-05-11 19:57:56 2720

转载 wifidog源码分析 - wifidog原理

wifidog是一个用于配合认证服务器实现无线网页认证功能的程序,常见的情景就是使用于公共场合的无线wifi接入点,首先移动设备会连接公共wifi接入点,之后会弹出网页要求输入用户名密码,认证过后才能够连入外网。其主页是http://dev.wifidog.org/实现原理  其实wifidog原理很简单,主要是通过管控iptables,配合认证服务器进行客户端的放行操作。wi

2016-05-11 19:56:30 540

转载 wifidog源码分析 - 初始化阶段

Wifidog是一个linux下开源的认证网关软件,它主要用于配合认证服务器实现无线路由器的认证放行功能。    wifidog是一个后台的服务程序,可以通过wdctrl命令对wifidog主程序进行控制。本文解释wifidog在启动阶段所做的初始化主要工作(代码片段1.1)初始化配置(先将配置结构体初始化为默认值,在读取配置文件修改配置结构体)初始化已连接客户端列表(如果是通过w

2016-05-11 19:55:11 897

原创 C语言中static的作用

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global variable

2016-05-10 19:47:58 1945

转载 Makefile.am文件详解

Makefile.am是一种比Makefile更高层次的编译规则,可以和configure.in文件一起通过调用automake命令,生成Makefile.in文件,再调用./configure的时候,就将Makefile.in文件自动生成Makefile文件了。所以Makefile.am文件是比Makefile文件更高的抽象。下面我根据自己的工作中的一些应用,来讨论Makefile.am的编

2016-05-09 20:02:34 12107

转载 Configure,Makefile.am, Makefile.in, Makefile文件之间关系

1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。    your source files --> [autoscan*] --> [configure.scan] --> configure.ac2.aclocal (automake):根据已经安

2016-05-09 19:52:58 438

原创 #ifdef和#endif用法

"#ifdef 语句1   程序2   #endif“   可翻译为:如果宏定义了语句1则执行程序2。   作用:我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。   代码举例:新建define.cpp文件   #include "iostream.h"   int main()   {   #ifdef DEBUG   cout<< "Beginning ex

2016-05-09 13:42:41 5393

转载 内存管理(malloc和free用法)

在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用—— 就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助!

2016-05-06 10:34:10 10218

转载 iptables详解

一:前言防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关。

2016-05-05 09:05:25 247

转载 堆,栈,内存泄露,内存溢出介绍

简单的可以理解为:heap(堆):是由malloc之类函数分配的空间所在地。地址是由低向高增长的。stack(栈):是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结

2016-05-04 16:00:32 1657

Visual_C++_6.0_MFC_入门教程

Visual_C++_6.0_MFC_入门教程

2014-02-24

空空如也

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

TA关注的人

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