摘要:原文地址:http://blog.csdn.net/estyle/archive/2004/07/02/32269.aspx欢迎转载!但请注明出处(原文地址)和我的姓名:靳田谢谢啦! ^_^
尽管大家都提“防御性编程”,但我还是比较喜欢“防御”——毕竟防御不是目的,只是措施而已,过分强调难免迷失方向。
首先要弄清楚的问题是:什么是防御?为什么要进行防御? 回答第一个问题,简单地说,防......
摘要:第九章 方法 一、 实例构造器 1、 前面提到用new操作符创建对象时的三部曲: l 为对象分配内存 l 初始化对象的附加成员(方法表指针和syncblockindex) l 调用实例构造器初始化实例状态 在分配内存时,系统将所有内存位置均置为0值,这就是为什么字段初始化而未赋值时均为0或null值。 不调用实例构造器的情况: l 调用object.memberwiseclone()方法创建实例(......
客户端源码分析之三: StorageWrapper 类上一页 ... self.failed = failed 【程序编程相关:
Web开发技术史话】 【推荐阅读:
在 Linux 下直接使用 ISO 映像】 self.numactive = [0] * len(hashes) 【扩展信息:
实现上千万条数据的分页显示!】 这几个变量的作用在前面已经介绍过了. inactive_request inactive_requests 的值全部被初始化为1,这表示每个片断都需要发送 request.后面在对磁盘文件检查之后,那些已经获得的片断,在 inactive_requests中对应的是 none,表示不需要再为这些片断发送 request了. self.inactive_requests = [1] * len(hashes) self.amount_inactive = self.total_length # 是否进入 endgame 模式?关于 endgame 模式,在«incentives build robustness in bittorrent »的“片断选择算法”中有介绍.后面可以看到,在为最后一个“子片断”产生请求后,进入 endgame 模式. self.endgame = false self.have = bitfield(len(hashes)) # 该片是否检查了完整性 self.waschecked = [check_hashes] * len(hashes) 这两个变量用于“空间分配算法” self.places = { } self.holes = [ ] if len(hashes) == 0: finished() return targets = {} total = len(hashes) # 检查每一个片断,,, for i in xrange(len(hashes)): # 如果磁盘上,还没有完全为这个片断分配空间,那么这个片断需要被下载,在 targets 字典中添加一项(如果已经存在,就不用添加了),它的关键字(key)是该片断的摘要值,它的值(value)是一个列表, 这个片断的索引号被添加到这个列表中. 这里一度让我非常迷惑,因为一直以为不同的文件片断肯定具有不同的摘要值.后来才想明白了,那就是:两个不同的文件片断,可能拥有相同的摘要值.不是么?只要这两个片断的内容是一样的. 这一点,对后面的分析非常重要. if not self._waspre(i): targets.setdefault(hashes[i], []).append(i) total -= 1 numchecked = 0.0 if total and check_hashes: statusfunc({"activity" : ´checking existing file´, "fractiondone" : 0}) # 这是一个内嵌在函数中的函数.在 c++ 中,可以有内部类,不过好像没有内部函数的说法.这个函数只能在 __init__() 内部使用. 这个函数在一个片段被确认获得后调用 # piece: 片断的索引号 # pos: 这个片断在磁盘上存储的位置 例如,片断5可能存储在片断2的位置上.请参看后面的“空间分配算法” def markgot(piece, pos, self = self, check_hashes = check_hashes): self.places[piece] = pos...
下一页 摘要:假设我是搭建在内部局域网中的一个dns(仅用测试嘛~)。 1. 第一步肯定是要规划一下自己域内的dns该怎么配! 希望配置到my.net的主域名服务器为10.1.1.198。而marco.my.net是公司的web和ftp服务器,它的ip是10.1.1.201。yuyu.my.net是mail server指向10.1.1.202 2. 根据上面的想法配置/etc/named.conf optio......