- 博客(45)
- 资源 (24)
- 收藏
- 关注
原创 socket数据读写
TCP socket数据读写#include #include ssize_t recv(int sockfd, void* buf, size_t len, int flags)ssize_t send(int sockfd, const void* buf, size_t len. int flags) #flag 默认值0 #recv/send
2014-07-07 18:49:13
760
原创 Linux网络编程API
1 socket地址API socket含义ip地址和端口(ip,port)2 socket基础API(#include ) 创建socket、命名socket、监听socket、 接受连接、发起连接、读写数据、获取地址信息、 检测外带标记、读取和设置socket选项
2014-07-07 18:48:33
709
原创 IP地址转换函数
#include in_addr_t inet_addr(const char* strptr) 点分十进制ipv4地址转换为网络ipv4地址,失败返回INADDR_NONEint inet_aton(const char* cp, struct in_addr* inp) 点分十进制ipv4地址转换为网络ipv4地址,成功为1,失败为0char* inet_aton(str
2014-07-07 18:47:00
773
原创 socket地址结构体
#include struct sockaddr_in{ sa_family_t sin_family; #地址族:AF_INET u_int16_t sin_port; #端口号 struct in_addr sin_addr; #ipv4地址结构体}struct in_addr{
2014-07-07 18:45:33
545
转载 Python中的__init__,__call__
__init__函数当一个类实例被创建时, __init__() 方法会自动执行,在类实例创建完毕后执行,类似构建函数。__init__() 可以被当成构建函数,不过不象其它语言中的构建函数,它并不创建实例--它仅仅是你的对象创建后执行的第一个方法。它的目的是执行一些该对象的必要的初始化工作。通过创建自己的 __init__() 方法,你可以覆盖默认的 __init__()方法(默认的方法
2014-04-14 18:41:40
649
转载 Python 魔术方法指南
Python 魔术方法指南入门构造和初始化构造定制类用于比较的魔术方法用于数值处理的魔术方法表现你的类控制属性访问创建定制序列反射可以调用的对象会话管理器创建描述器对象持久化对象总结附录介绍此教程为我的数篇文章中的一个重点。主题是魔术方法。 什么是魔术方法?他
2014-04-14 18:40:34
727
原创 tornado源码阅读--ioloop篇
调用: tornado.ioloop.IOLoop.instance().start()ioloop 这个核心的 I/O 循环,作用不用说就是,就是一个监听用户请求,然后映射具体的处理,最后返回给用户想要的结果。那首先从源码开始,看看它的定义和调用class IOLoop(Configurable): """A leve
2014-04-14 18:40:08
1283
原创 tornado源码阅读--HTTPServer篇
在这个地方首先线上一个流程图Tornado 服务器有3大核心模块,下面这幅图描述了 tornado 服务器的大体处理流程,接下来我们将会详细分析每一步流程的实现。在上一篇Blog中,我们说过到了Application对象的初始化,最后说得到Appliction,初始化完之后调用的是listen(),这是调用HTTPServ
2014-04-14 18:39:33
782
原创 tornado源码阅读--Application篇
主要模块web - FriendFeed 使用的基础 Web 框架,包含了 Tornado 的大多数重要的功能database - 对 MySQLdb 的简单封装,使其更容易使用template - 基于 Python 的 web 模板系统httpclient - 非阻塞式 HTTP 客户端,它被设计用来和 web 及 httpserver 协同工作auth - 第三方认证的实现(包括 G
2014-04-14 18:39:02
740
原创 tornado源码阅读--开篇
工作之中使用python也是有一段时间了,都是python有很多不错的网络框架,例如:Django、twisted、tornado、web.py、flask等等,但是由于工作性质的关系,很多都没有用过,最近闲来无事,安装了一个tornado来学习学习,欢迎大家学习交流。废话不多说。首先还是从官方的文档开始吧。概括FriendFeed使用了一款使用 Pytho
2014-04-14 18:38:26
1126
原创 Python中的__init__,__call__
__init__函数当一个类实例被创建时, __init__() 方法会自动执行,在类实例创建完毕后执行,类似构建函数。__init__() 可以被当成构建函数,不过不象其它语言中的构建函数,它并不创建实例--它仅仅是你的对象创建后执行的第一个方法。它的目的是执行一些该对象的必要的初始化工作。通过创建自己的 __init__() 方法,你可以覆盖默认的 __init__()方法(默认的方法
2014-04-10 18:13:38
555
原创 关于mongodb中ObjecId的一些详解和验证
实际上写这篇文章的时候网站上已经有很多的说明和文档翻译,只是零零总总的很多,然而我写这篇文章的话,就是一个验证和一个总结的作用,而且我这也只能算是定义为一个知识的搬运。这篇主要是参考了(http://blog.nosqlfan.com/html/3511.html),首先的话,先进行一个ObjecId这个值的概念的一个普及。什么是ObjectId和组成 在Mo
2014-01-17 16:37:30
1992
转载 如何使用pyflakes给python做语法检查
python是一门动态语言。在给python传参数的时候并没有严格的类型限制。写python程序的时候,发现错误经常只能在执行的时候发现。有一些错误由于隐藏的比较深,只有特定逻辑才会触发,往往导致需要花很多时间才能将语法错误慢慢排查出来。其实有一些错误是很明显的,假如能在写程序的时候发现这些错误,就能提高工作效率。最近我发现,可以用pyflakes这个程序对python语法进行语法检查,这样可以尽
2013-09-23 15:01:22
1150
原创 Redis的Python开发包 redis-py
redis-pyThe Python interface to the Redis key-value store.InstallationNOTE: redis-py requires a running Redis server. See Redis's quickstart for installation instructions.$ sudo pip
2013-04-22 12:18:49
1212
转载 Windows下安装libxml2并在Python中使用XPath
为了使用XPath技术,对爬虫抓取的网页数据进行抽取(如标题、正文等等),花了一天的时间熟悉了一下Python语言,今天尝试在Windows下安装libxml2模块,将自己的一点学习实践简单记录一下。Python在安装一个扩展的模块时,可以通过安装辅助工具包(Setuptools)来安装新的Python packages,并可以实现对已经安装的packages的管理。在http://pyp
2013-04-11 19:10:38
1115
原创 scrapy easy_install如果报错
我昨天才装过 :-)http://zys-free.com/wordpress/?p=231$ sudo apt-get install gcc$ sudo apt-get install python-dev$ sudo apt-get install libxml2 libxml2-dev$ sudo apt-get install libxslt1.1 libxs
2013-03-20 00:15:08
664
转载 Python中json.loads的时候出错->要注意要解码的Json字符的编码
Python中json.loads的时候出错->要注意要解码的Json字符的编码要注意要解码的Json字符的编码" rel="bookmark" style="margin:0px; padding:0px; border:0px; font:inherit; vertical-align:baseline; color:rgb(7,44,83); text-decoration:init
2013-03-07 16:02:09
10698
转载 json.dumps错误:'utf8' codec can't decode byte解决方案
json.dumps错误:'utf8' codec can't decode byte解决方案2013-01-05 13:55:14 来源: 评论:0 点击:104一次在使用json.dumps()过程中,出现错误提示:ERROR:"UnicodeDecodeError: 'utf8' codec can't decode byte 0xe1 in.
2013-03-07 15:52:13
3634
转载 Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。2. copy.deepcopy 深拷贝 拷贝对象及其子对象一个很好的例子:import copya = [1, 2, 3, 4, ['a', 'b']] #原始对象b = a #赋值,传对象的引用c = copy.copy(a) #对象拷贝,浅拷贝d = copy.deepcopy
2013-03-05 00:14:26
612
转载 用Tornado实现简单的在线代理
实现代理的方式很多种,流行的web服务器也大都有代理的功能,比如http://www.tornadoweb.cn用的就是nginx的代理功能做的tornadoweb官网的镜像。最近,我在开发一个移动运用(以下简称APP)的后台程序(Server),该运用需要调用到另一平台产品(Platform)的API。对于这个系统来说,可选的一种实现方式方式是APP同时跟Server&Platform两
2013-02-18 22:47:30
914
转载 [转载]理解Python中的装饰器
首先声明:这是一篇转载的文章,原文地址: www.cnblogs.com/rollenholt/archive/2012/05/02/2479833.html 文章先由stackoverflow上面的一个问题引起吧,如果使用如下的代码: Python代码 @makebold @makeitalic def say(): return
2013-02-10 22:13:43
475
原创 SocketServer — A framework for network servers
每个服务器类中最主要的是有两个子类:BaseHTTPServer: HTTPServer BaseHTTPRequestHandlerSocketServer TCPServer BaseRequestHandlerSocketServer有四个基本的子类:TCPServer, UDPServer,UnixStreamServer a
2013-01-16 00:46:31
455
原创 python库详解
While The Python Language Reference describes the exact syntax and semantics of the Python language, this library reference manual describes the standard library that is distributed with Python. It
2012-08-03 16:16:50
1232
转载 Python2与Python3的区别
1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果。 Py3.1性能比Py2.5慢15%,还有很大的提升空间。 2.编码 Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的: >>> 中国 = 'china' >>>
2012-07-09 11:25:27
502
转载 Python模块学习 ---- StringIO, cStringIO 内存文件
StringIO的行为与file对象非常像,但它不是磁盘上文件,而是一个内存里的“文件”,我们可以将操作磁盘文件那样来操作StringIO。一个简单的例子,让你对StringIO有一个感性的认识:1 #coding=gbk2 3 import StringIO, cStringIO, sys4 5 s =
2012-07-06 15:27:46
1010
转载 Python模块学习 ---- pickle, cPickle 对象序列化/反序列化
上次学习过marshal模块用于序列化和反序列化,但marshal的功能比较薄弱,只支持部分内置数据类型的序列化/反序列化,对于用户自定义的类型就无能为力,同时marshal不支持自引用(递归引用)的对象的序列化。所以直接使用marshal来序列化/反序列化可能不是很方便。还好,python标准库提供了功能更加强大且更加安全的pickle和cPickle模块。 cPickle模块是使用C
2012-07-06 15:26:52
1302
转载 python的几个内建函数:apply(),filter(),map(),reduce()
apply()函数: apply(func[,nkw][,kw]) 它的返回值就是func函数的返回值filter()函数: filter(func,seq) 调用bool函数func,遍历处理序列中seq的每个元素。它的返回值是一个序列,其元素都是让func函数返回true值的原seq序列中的元素map()函数:def map(func,seq): map
2012-07-05 22:13:21
528
原创 用python计算文件的md5值
在linux下用md5sum这个命令一样,这个python程序也是用来计算一个文件的md5值的,这个值通常用来标识文件的完整性或者唯一性import md5import sysdef sumfile(fobj): m = md5.new() while True: d = fobj.read(8096)
2012-07-05 21:19:03
1709
原创 Python中的SET集合操作
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.sets 支持 x in set, len(set), 和 for x in set。作为一个无序的集合,sets 不记录元素
2012-07-05 17:12:28
737
转载 shutil模块
shutil模块是一种高层次的文件操作工具,类似于高级API,主要强大之处在于其对文件的复制与删除操作更是比较支持好。 copyfile( src, dst) 从源src复制到dst中去。当然前提是目标地址是具备可写权限。抛出的异常信息为IOException. 如果当前的dst已存在的话就会被覆盖掉 copymode( src, dst) 只是会复制
2012-06-19 16:16:27
648
原创 ubuntu下安装scrapy
今天一下午都在安装scrapy,虽然网上也有很多的安装方法,但是安装完之后还是会出现一些问题,大概说一下主要参考的是下面的这边文章,他已经说的很详细了,我在这先给他贴出来参考连接:http://open.189.cn/discuz/forum.php?mod=viewthread&tid=86摘要: 原创作者:博客园sharpstill,转载请注明Scrapy是一款非常
2012-06-15 19:03:17
1938
转载 Scrapy-CrawlSpider爬虫组件
http://blog.youkuaiyun.com/LYNDLL/article/details/5082514python是一门伟大的语言,python的世界里有很多优秀的开源库,今天要解析的开源库是刚刚接触不久的Scrapy--开源爬虫库。 Scrapy 可能对很多人都是一个比较陌生的开源爬虫库,网上的资料也比较少,我也是最近才发现并决定学习使用的。
2012-06-14 16:14:09
1614
转载 Linux(RedHat,Centos)上scrapy详尽安装笔记
http://www.cnblogs.com/sharpstill/archive/2012/05/26/2519654.htmlScrapy是一款非常成熟的爬虫框架,可以抓取网页数据并抽取结构化数据,目前已经有很多企业用于生产环境。对于它的更多介绍,可以查阅相关资料(官方网站:www.scrapy.org)。我们根据官网提供的安装指南,来一步步安装,主要参考了
2012-06-14 15:50:30
718
转载 urllib2如何用代理访问网络
这个是我自己写的用urllib2通过代理访问网络的代理,可行:import urllib2proxyHandler = urllib2.ProxyHandler({'http':'http://60.2.89.128:8080'})opener = urllib2.build_opener(proxyHandler)urllib2.install_opener(opener)r
2012-06-10 22:05:05
2852
原创 python基于http协议编程:httplib,urllib和urllib2
httplib实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现。import httplibconn = httplib.HTTPConnection("google.com")conn.request('get','/')print conn.getresponse().read()
2012-06-10 21:59:09
654
原创 获取python执行shell命令的结果
两种方法,一种是且Popen.output = subprocess.Popen(['ls','-l'],stdout=subprocess.PIPE,shell=True).communicate()print output[0]另外一种则可返回状态与调用的shell命令的输出结果>>> import commands>>> status, output = comman
2012-06-04 16:07:25
2687
原创 链表逆置
一次扫面实现链表的逆置 //链表带头结点node *reverse(node *head){ node *p, *q, *t; p = head->next;//指向第一个节点 t = q = p->next;//指向第二个节点,如果有的话。没有则为空。 p->next = NULL;//第一个节点逆置之后,变成最后一个节点,它的next为空。 //根据
2012-06-01 00:15:02
413
转载 GDB调试
http://blog.youkuaiyun.com.sixxs.org/wei801004/archive/2009/06/09/4253911.aspx GDB 命令详细解释 Linux中包含有一个很有用的调试工具--gdb(GNU Debuger),它可以用来调试C和C++程序,功能不亚于Windows下的许多图形界面的调试工具。 和所有常用的调试工具一样,gdb提供了以下功能:
2012-04-01 16:37:45
441
转载 python os.path常用模块
不错的总结:http://www.fzs8.net/python/2007-07-11/7848.htmlos.path模块basename('文件路径') 去掉目录路径,返回fname文件名 1 import os 2 os.path.basename('/Volumes/1.mp4') #输出('1.mp4')dirname('文件路径') 去掉
2012-03-22 10:17:32
586
HTML5 Canvas
2012-03-31
webkit源代码(遨游浏览器)
2011-09-30
wxPython2.8-win32-ansi-2.8.11.0-py25.exe
2011-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人