自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (3)
  • 收藏
  • 关注

原创 vmware下CentOS7.0 安装 GCC (GNU 编译器集) 及VMware Tools

GCC 即 GNU 编译器集,是一个 GNU 项目开发的支持多种编程语言的编译系统(LCTT 译注:在你需要自己编译构建软件时需要它)。在最小化安装的 CentOS 没有默认安装。运行下面的命令安装 gcc 编译器。# yum install gcc在 CentOS 上安装 GCC检查安装的 gcc 版本。# gcc --version检查 GC

2016-08-30 23:16:07 6170

转载 windows环境libevent搭建

libevent框架之前有做过分析,这次是谈谈如何将libevent搭建在vs工作环境下,并且编写一个demo进行测试。测试过程中会再一次带大家分析消息是怎么传递的。我的libevent版本libevent-2.0.22-stable,用对应的vs命令工具进入该目录我的是Visual Studio 2008版本的Command Prompt 执行成功后在libeve

2016-08-23 18:23:26 811

转载 Libevent源码分析-----bufferevent工作流程探究

出处:http://blog.csdn.net/luotuo44/article/details/39344743        和之前的《Libevent工作流程探究》一样,这里也是用一个例子来探究bufferevent的工作流程。具体的例子可以参考《Libevent使用例子,从简单到复杂》,这里就不列出了。其实要做的例子也就是bufferevent_socket

2016-08-23 17:14:42 444

转载 Libevent源码分析-----更多evbuffer操作函数

出处:http://blog.csdn.net/luotuo44/article/details/39325447锁操作:        在前一篇博文可以看到很多函数在操作前都需要对这个evbuffer进行加锁。同event_base不同,如果evbuffer支持锁的话,要显式地调用函数evbuffer_enable_locking。[c

2016-08-23 17:13:54 471

转载 Libevent源码分析-----evbuffer结构与基本操作

出处:http://blog.csdn.net/luotuo44/article/details/39290721                        对于非阻塞IO的网络库来说,buffer几乎是必须的。Libevent在1.0版本之前就提供了buffer功能。现在来看一下Libevent的buffer。buffer相关结构体: 

2016-08-23 17:11:25 491

转载 Libevent源码分析-----连接监听器evconnlistener

出处:http://blog.csdn.net/luotuo44/article/details/38800363使用evconnlistener:        基于event和event_base已经可以写一个CS模型了。但是对于服务器端来说,仍然需要用户自行调用socket、bind、listen、accept等步骤。这个过程有点繁琐,为此在2

2016-08-23 17:07:39 297

转载 Libevent源码分析-----通用类型和函数

出处:http://blog.csdn.net/luotuo44/article/details/38780157        Libevent定义了一系列的可移植的兼容类型和函数。这使得在各个系统上都有一致的效果,Libevent一般都会在兼容通用类型和函数的前面加上ev或evutil前缀。        在实现上,Libevent都是使用条件编译+宏定

2016-08-23 17:06:43 449

转载 Libevent源码分析-----与event相关的一些函数和操作

出处: http://blog.csdn.net/luotuo44/article/details/38739549           Libevent提供了一些与event相关的操作函数和操作。本文就重点讲一下这方面的源代码。         在Libevent中,无论是event还是event_base,都是使用指针而不会使用变量。实际上,如果查看

2016-08-23 17:04:04 308

转载 Libevent源码分析-----管理超时event

出处: http://blog.csdn.net/luotuo44/article/details/38678333        前面的博文已经说到,如果要对多个超时event同时进行监听,就要对这些超时event进行集中管理,能够方便地(时间复杂度小)获取、加入、删除一个event。        在之前的Libevent版本,Libevent使用小根堆

2016-08-23 17:02:59 806

转载 Libevent源码分析-----Libevent时间管理

出处: http://blog.csdn.net/luotuo44/article/details/38661787基本时间操作函数:        Libevent采用的时间类型是struct  timeval,这个类型在很多平台都提供了。此外,Libevent还提供了一系列的时间操作函数。比如两个struct timeval相加、相减、比较大小。有些平台

2016-08-23 17:02:08 270

转载 Libevent源码分析-----超时event的处理

出处: http://blog.csdn.net/luotuo44/article/details/38637671如何成为超时event:                Libevent允许创建一个超时event,使用evtimer_new宏。[cpp] view plain copy //event

2016-08-23 16:59:50 424

转载 Libevent源码分析-----evthread_notify_base通知主线程

出处: http://blog.csdn.net/luotuo44/article/details/38556059        一般来说,是主线程执行event_base_dispatch函数。本文也是如此,如无特别说明,event_base_dispatch函数是由主线程执行的。notify的理由:        本文要说明的问题是,当

2016-08-23 16:59:03 387

转载 Libevent源码分析-----信号event的处理

出处:http://blog.csdn.net/luotuo44/article/details/38538991信号event的工作原理:        前面讲解了Libevent如何监听一个IO事件,现在来讲一下Libevent如何监听信号。Libevent对于信号的处理是采用统一事件源的方式。简单地说,就是把信号也转换成IO事件,集成到Libevent中。

2016-08-23 16:58:12 1171

转载 Libevent源码分析-----event优先级设置

出处: http://blog.csdn.net/luotuo44/article/details/38512719        event_base允许用户对它里面的event设置优先级,这样可以使得有些更重要的event能够得到优先处理。        Libevent实现优先级功能的方法是:用一个激活队列数组来存放激活event。即数组的元素是一个激

2016-08-23 16:57:17 323

转载 Libevent源码分析-----Libevent工作流程探究

出处:http://blog.csdn.net/luotuo44/article/details/38501341        之前的博文讲了很多Libevent的基础构件,现在以一个实际例子来初步探究Libevent的基本工作流程。由于还有很多Libevent的细节并没有讲所以,这里的探究还是比较简洁,例子也相当简单。[cpp] view pla

2016-08-23 16:55:52 252

转载 Libevent源码分析-----跨平台Reactor接口的实现

出处: http://blog.csdn.net/luotuo44/article/details/38458469        之前的博文讲了怎么实现线程、锁、内存分配、日志等功能的跨平台。Libevent最重要的跨平台功能还是实现了多路IO接口的跨平台(即Reactor模式)。这使得用户可以在不同的平台使用统一的接口。这篇博文就是来讲解Libevent是怎么实

2016-08-23 16:39:27 293

转载 Libevent源码分析-----配置event_base

出处: http://blog.csdn.net/luotuo44/article/details/38443569        前面的博文都是讲一些Libevent的一些辅助结构,现在来讲一下关键结构体:event_base。         这里作一个提醒,在阅读Libevent源码时,会经常看到backend这个单词。其直译是“后端”。实际上

2016-08-23 16:38:43 223

转载 Libevent源码分析-----event_signal_map

出处: http://blog.csdn.net/luotuo44/article/details/38424173相关结构体:                因为event_signal_map结构体实在太简单了,所以不像event_io_map那样,有一个专门的文件。由于没有专门的文件,那么只能从蛛丝马迹上探索这个event_signal_map结构了。

2016-08-23 16:29:50 256

转载 Libevent源码分析-----event_io_map哈希表

出处: http://blog.csdn.net/luotuo44/article/details/38403241        上一篇博客说到了TAILQ_QUEUE队列,它可以把多个event结构体连在一起。是一种归类方式。本文也将讲解一种将event归类、连在一起的结构:哈希结构。哈希结构体:        哈希结构由下面几个结构

2016-08-23 16:28:51 306

转载 Libevent源码分析-----TAILQ_QUEUE队列

出处: http://blog.csdn.net/luotuo44/article/details/38374009        Libevent源码中有一个queue.h文件,位于compat/sys目录下。该文件里面定义了5个数据结构,其中TAILQ_QUEUE是使得最广泛的。本文就说一下这个数据结构。队列结构体:        TAI

2016-08-23 16:28:07 261

转载 Libevent源码分析-----多线程、锁、条件变量(二)

出处: http://blog.csdn.net/luotuo44/article/details/38360525Debug锁操作:               Libevent还支持对锁操作的一些检测,进而捕抓一些典型的锁错误。Libevent检查:解锁自己(线程)没有持有的锁在未解锁前,自己(线程)再次锁定一个非递归锁。

2016-08-23 16:27:12 348

转载 Libevent源码分析-----多线程、锁、条件变量(一)

出处: http://blog.csdn.net/luotuo44/article/details/38350633        Libevent提供给用户的可见多线程API都在thread.h文件中。在这个文件提供的API并不多。基本上都是一些定制函数,像前面几篇博文说到的,可以为Libevent定制用户自己的多线程函数。开启多线程: 

2016-08-23 16:26:28 332

转载 Libevent源码分析-----内存分配

出处: http://blog.csdn.net/luotuo44/article/details/38334979        Libevent的内存分配函数还是比较简单的,并没有定义内存池之类的东西。如同前一篇博客那样,给予Libevent库的使用者充分的设置权(定制),即可以设置用户(Libevent库的使用者)自己的内存分配函数。至于怎么分配,主动权在于用

2016-08-23 16:25:44 284

转载 Libevent源码分析-----日志和错误处理

出处: http://blog.csdn.net/luotuo44/article/details/38317797日志处理:        在Libevent的源码中,经常会见到形如event_warn、event_msgx、event_err之类的函数。这通常出现在代码中一些值是不合理时。这些函数就是Libevent的日志函数。它能把这些不合

2016-08-23 16:22:26 1192

转载 Libevent源码分析-----event-config.h指明所在系统的环境

出处: http://blog.csdn.net/luotuo44/article/details/38300965        如果你打开Libevent的一些文件,比如util.h文件。就会发现使用了很多宏定义,并根据一些宏定义而进行条件编译。这些宏定义往往来自event-config.h文件中。        如util.h文件的代码开始处:

2016-08-23 16:21:31 281

转载 Libevent源码分析-----开篇

出处: http://blog.csdn.net/luotuo44/article/details/38300779        我所分析的Libevent版本是2.0.21版本,是目前最新的稳定版本。看这系列博文中,需要读者有Linux编程的一些基础。因为像POSIX、文件描述符、多线程等等这些概念,我并不会去解释,我默认读者已经熟悉这些概念了。如果读者读过《U

2016-08-23 15:59:12 299

转载 tinyhttpd源码详解 转载自 技术菌的blog

tinyhttpd是一轻量级的web 服务器,最近几天终于抽出时间来研究研究了。其源码百度即可下载,500多行,确实是学习linux编程的好材料。很多网友都写了关于tinyhttpd的博文,但是我还是觉得不够深入,严格说是写得不够深入,往往就是把500多行代码一扔,分析下主要过程,画个流程图就完事了。我怎么觉得还有很多东西可以挖一挖呢,也许还可再调整一下代码,虽然目前也不清楚可调整多少,待我细细道

2016-07-10 09:54:00 784

原创 在Windows上编译Wireshark源代码

1. Visual Studio 我用的是2013版本2. Python 我用的是2.7.63. Cygwin去Cygwin上下载最新版本安装,地址是https://cygwin.com/install.html,我选择的是64位,Installing and Updating Cygwin for 64-bit versions of Windows然后开始安装,整个安装过程

2016-06-11 15:01:19 1357 1

原创 windows和linux上的包嗅探

一个简单的嗅探器,以管理员方式运行脚本,以下为运行结果

2016-02-03 21:22:19 559

原创 通过Paramiko使用SSH

最近开始学习PYTHON黑帽子这本书,准备就个人学习经历,写成博客分享给大家首先是客户端代码,如下与BHP原作相比,需添加代码paramiko.util.log_to_file ('paramiko.log')否则回报以下错误no handlers could be found for logger paramiko.transport附上解释htt

2016-01-31 18:49:03 1193

栈、队列的双向链表实现

栈、队列的双向链表实现,用C++写的双向循环链表派生栈和队列,用C++写的双向循环链表派生栈和队列

2016-04-12

数据结构案例教程C语言版

数据结构案例教程可以使大家更容易学好数据结构这门课程

2010-12-27

空空如也

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

TA关注的人

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