- 博客(16)
- 资源 (4)
- 收藏
- 关注
原创 wireshark源代码的一些分析
最近一段时间一直在看wireshark的源代码,没办法,项目需要嘛。这里写了一些wireshark源代码的分析,比较粗浅也比较混乱。epan/dissector/packet-XXX.c提供了相应协议的解析器需要把解析器先注册到系统中,然后实现协议解析proto_register_XXX()dissect_XXX()在协议解析中使用到的函数有三个变量, tvbuff
2012-04-20 14:22:04
2112
原创 weibo python api 初尝试
今天下载了新浪微博的api,python版本的。不过后来发现新浪平台上的python api 居然不是官方版本,而是由廖雪峰提供的。这个版本的python api只适合用于网站开发,不合适用于客户端开发。因为本来是不知道这些的,所以我在这两种方式上吃了一些苦头。weibo的认证有两种方式,一种是使用pin码的认证方法,另一种是code码的认证方法。当然这两种都是oauth2认证。我就用实例
2012-03-16 07:21:58
2997
2
原创 可以将txt文件转换为mobi的小软件
上周写了转换软件中用到的压缩算法,本来想一股作气把整个小软件都写了,无奈当时要去做手术,所以搁置了。昨天重新把代码拿起来写,前后总共花了我4天的业余时间,现在总算把他写完了。本软件用法简单。如果你是在linux下,解压软件包后在终端运行./test xxx.txt,就可以把xxx.txt转换为xxx.mobi。不过一定要确保你的xxx.txt在当前目录下。如果你是在window下,那你需要
2012-03-13 23:10:37
1166
原创 lz77算法的实现
最近想写一个把txt文本转成mobi文件的小程序,看了一下mobi的格式,里面最重要的就是要用到一个palmdoc的压缩算法,这个压缩算法是一个lz77的变形。今天花了一个上午实现了这个压缩算法,当然还写了解压缩的程序。现在把程序贴上来。lz.h/* LZ77 is a compression technique that used to compress text */#ifn
2012-03-07 20:07:29
1193
原创 lz77算法的实现
最近想写一个把txt文本转成mobi文件的小程序,看了一下mobi的格式,里面最重要的就是要用到一个palmdoc的压缩算法,这个压缩算法是一个lz77的变形。
2012-03-07 19:49:52
466
原创 python写的第二个小程序:人人网相册下载器
不支持公共主页和小站,希望以后能更新吧。#!/usr/bin/env python#encoding=utf-8import sys, urllib2, cookielib,urllib,refrom HTMLParser import HTMLParserreload(sys)sys.setdefaultencoding('utf-8')class ShareParse
2012-03-03 14:49:33
838
1
原创 python的第一个小程序
学习Python也有一周了,昨天晚上花了一个小时写了一个小程序,这个小程序可以从www.daomubiji.com这个网站上下载盗墓笔记的八本书,然后在本地磁盘保存。因为写得比较匆忙,所以没有添加多线程,也没有添加异常处理,只是一个比较小的demo。闲话少说,直接上代码吧。#-*-coding:utf-8-*-import sysfrom HTMLParser import HTMLPars
2012-02-26 16:40:32
512
原创 glib是如何实现hashtable的
hash表做为一个数据结构,具有快速查找的优势,理想情况下,每一次查找的时间复杂度都是O(1)。glib在文件ghash.c中实现了hashtable,今天学习了一下源代码,感觉收获还是蛮多的,下面对源代码做一个解析。hash表之所以能做到快速查找,是因为他使用了数组做为容器。在glib中,hashtable这个数据结构有三个数组分别存放key,value和hash值。struct _GH
2012-02-24 22:29:10
1306
原创 看glib是如何实现归并排序的
我们知道在比较排序算法中,归并排序可以实现O(n*logn)的时间复杂度。对于数组来说,他不是原地排序,需要申请额外的空间。不过glib是用链表来表示一个GList的,所以在GList当中,只需要修改链表的前后指针即可。归并排序的一般算法为:void MergeSort(Node l[], int m , int n) { if(m<n){ MergeSort(l,
2012-02-24 07:59:04
479
原创 glib数据存储的疑惑
我们都知道glib使用gpointer这个类型来存储数据。这样做的好处就是可以存储多种类型的数据,比如存储int,float类型的数据,只需要将指针传进去即可。不过我在使用glib时却遇到了一些令人疑惑不解的东西。由于glib使用gpointer来存储数据,而gpointer只是一个void类型的指针(typedef void* gpointer),所以存储时应该将数据的指针传递给函数。比如G
2012-02-23 08:29:43
618
原创 libxml读取xml文件的其他方法
在前面一篇文章我提到了一种分析文档的方法,即调用xmlParseFile函数。当我看了libxml官网上的code examples之后,我发现libxml还提供了更加精准的分析方式。1 调用xmlReadFile函数xmlReadFile函数接收三个参数,第一个参数是文件名,第二个参数是编码类型,第三个参数是分析时的选项。由于提供了更多的参数,所以这个函数能更精确的处理文件。这个函数返回
2012-02-15 23:26:29
2265
原创 libxml的使用(4)--xpath搜索节点树
在libxml的tutorial中介绍了一种用关键字查找节点的方法,这种方法将使用打xpath系列API。由于我才刚刚接触libxml,所以我对xpath的认识也仅仅是在tutorial提供的功能之内了。废话少说,直接进入整体。我们在操作xml文件是经常需要根据特定的条件查找一系列的节点,为了实现这样的功能,我们需要一个xmlXPathContextPtr和一个expression。我们调用x
2012-02-15 22:11:36
2605
原创 libxml的使用(3)--编辑节点
libxml读取的基本功能已经介绍过了,现在将介绍libxml编写的基本功能。编写操作包含节点的添加,删除和修改。对于添加,我们需要调用xmlNewTextChild函数来添加节点,需要xmlNewProp函数来添加属性。xmlNewTextChild接受四个参数,第一个参数为新添加节点的父节点,第二个参数为新节点的命名空间namespace,第三个参数为节点的名称,第四个参数为节点的
2012-02-14 13:32:06
1710
原创 libxml的使用(2)--读取节点属性
在上一篇文章当中,我读取了各个节点的名字和内容,现在我将读取各个节点的属性。content1content2go这是上一篇文章中提到的xml文件。在node2这个节点上有一个属性attribute,其值是yes。我们可以使用xmlGetProp这个函数将其提取出来。这个函数包含了两个变量,一个是将要提取属性的节点指针xmlNodePtr,另一个是属性的名称。xmlChar
2012-02-14 10:43:38
2628
原创 libxml的使用(1)--读取xml
libxml是一个用于解析xml文件的库,在各个平台下都能使用,也支持多种语言,如c,python等。这里是官方网站。上面有libxml的api和一些code examples,都是英文的。不过比较简单。libxml的基础功能就是对xml的读和写。下面将简单介绍libxml的读的功能。(大部分内容是参照libxml tutorial 的文档)0 编译程序因为本人是在linux下
2012-02-14 09:19:46
2304
原创 linux下中国象棋小游戏(粗糙版)
第一篇博客,就把自己以前写的一个中国象棋的小游戏放上来。主要是寒假在家没事干,所以写个游戏打发时间。不过最后没起到作用,因为写了差不多了就不想写了,所以只花了两天的时间。最后寒假大部分时间还是在酱油。还好最后把火影看完了。看看截图吧,很粗糙!红方先走哦!!这里是源文件,需要安装gtk才能编译。不过有可执行文件main。chess
2012-02-11 15:48:32
859
MobiConverter
2012-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人