当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 客户端源码分析之二: Storage LOR: black; F
 

 

 ·欢迎访问我的源码分析论坛    »显示摘要«
    摘要:http://mail.dprk-stamp.com/openidea/leobbs.cgi ......
    摘要: 无标题文档 java安全通信、数字证书及数字证书应用实践 abnerchai(柴政) 2004年6月 摘要: 在本文中,我用详细的语言和大量的图片及完整的程序源码向你展示了在 java中如何实现通过消息摘要、消息验证码达到安全通信、以及用java的工具生成数字证书,和用程序给数字证书签名、以及用签名后的数学证书签名applet突破applet的访问权限的过程,给出了全部例子的详细代码。 通过本文......


客户端源码分析之二: Storage 类
客户端源码分析之二: storage 类

日期:2004-6-28 【程序编程相关:在 Linux 下直接使用 ISO 映像

作者:小马哥 【推荐阅读:在 Linux 下提升 bash 权限!

由于 storage 类比较简单,我直接在源码基础上进行注释.掌握storage,为进一步分析 storagewrapper 类打下基础. 【扩展信息:Web开发技术史话

 

 

几点说明:

1.  storage 类封装了对磁盘文件的读与写的操作.

2.  bt既支持单个文件的下载,也支持多个文件,包括可以有子目录.但是它并不是以文件为单位进行下载与上传的,而是以“文件片断”为单位.这可以在bt协议规范以及另一篇讲bt技术的文章中看到.所以,对于多个文件的情况,它也是当作一个拼接起来的“大文件”来处理的.例如,有文件 aaa与bbb,大小分别是 400与1000,那么它看作一个大小为 1400 的大文件,并以此来进行片断划分.

3.  文件在下载过程中,同时提供上传,所以是以读写方式打开的,wb+与rb+都指的读写方式.在下载完毕之后,改为只读方式.

4.  由于下载可能中断,所以在 storage 初始化的时候,磁盘上可能已经存在文件的部分数据,必须检查一下文件的大小.为了便于描述,我们把完整文件的大小称为“实际长度”,把文件当前的大小成为“当前长度”.

 

 

class storage:

 

# files 是一个二元组的列表(list),二元组包含了文件名称与长度,例如:

[(“aaa”, 100), (“bbb”, 200)]

def __init__(self, files, open, exists, getsize):

 

        self.ranges = []

 

# 注意,这里是 0l,后面的l表示类型是长整形,而不是 01.

        total = 0l

        so_far = 0l

 

        for file, length in files:

            if length != 0:

   

               # ranges 是一个三元组列表,三元组的格式是: 在“整个”文件的起始位置.结束位置.文件名.bt在处理多个文件的时候,是把它们看作一个拼接起来的大文件.

                self.ranges.append((total, total + length, file))


...   下一页
 ·在.net1.2中对xquery的支持    »显示摘要«
    摘要:在.net1.2中支持xquery,xquery使用一种叫flwor的查询语言(音flower).例子如下: using system;using system.io;using system.xml;using system.xml.query;using system.data.sqlxml;namespace xquery{public class xquerysample{ public ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE