⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 进度.txt

📁 一个基于NetBeans平台开发的
💻 TXT
📖 第 1 页 / 共 2 页
字号:
这是NetBeans的进度
-------------------------------------------------------------------
记录制作毕业设计的进度,便于每天的工作。
可以登陆:	http://sinpool.blogchinese.com/
得到更多的信息。

-------------------------------------------------------------------
2005.1.15
得到了BT传输协议(译本)
-------------------------------------------------------------------
2005.1.18
了解了BT种子文件的格式。
-------------------------------------------------------------------
2005.1.23
研究BT数据传输的原理,获得了不少经验。
-------------------------------------------------------------------
2005.1.27
解决了Java语言中,SHA-1算法的实现。
-------------------------------------------------------------------
2005.2.1
    众所周知,BT种子文件的制作“原料”,可能是单文件,也可以是某文件夹下的多个文件。经过调试,对文件的解析终于成功了。只是实现了一部分功能。对单文件制作的BT种子文件可以进行成功解析了。对于多文件制作的种子文件的解析,几天内要完成。
    值得注意的是,Java的字符原始类型(char)长度是16位,而非8位,这和C/C++的长度是不同的。而BT种子文件是由字符组成的字符串所构成的,即每个字节表示一个字符,几个字符表示一个字符串(这是废话)。这些字符串可能代表键名,也可以代表键值。比如:length:23574,表示的是:length(键名)、2354(键值)。这个只是例子,它的文件格式是python的数据结构决定的,所以为了表示这个例子,还会有其他附加的信息。正如所示,23574是一个字符串,而不是一个int类型的数值。所以对文件进行“读”操作时,不能象C/C++那样从文件里一次读一个字符,否则会一次读两个字符(Java是16位)。解决的办法就是:从原始入手,一次读一个字节,之后再作进一步处理。
-------------------------------------------------------------------
2005.2.5
    通过调试,今天终于实现了解析文件的所有功能。
    可以对多文件制作的BT种子文件进行解析了。
    这里所说的解析,就是把文件中Bencoding编码的数据结构信息转换成Java中的HASH表数据结构。

    当然,此程序还存在不足。因为在读取文件时,把数据存到一个byte[]数组里,没有进行任何“流”的扩展和优化,所以性能上有不足。尤其是,当“.Torrent”文件太大时,速度明显慢
-------------------------------------------------------------------
2005.2.7
    与其说,这是对BT信息文件解析的完结,不如说是对Bencoding编码的完结。

    因为我发现,OpenFile类内部解决了对B编码的问题,但是,Tracker向peer的回应仍然是B编码。当然不能创建一个OpenFile对象去解决这个回应,所以我对OpenFile类进行了一下改造。把解析B编码的部分分离出来,形成一个独立的类。这样别的元素也可以在解析B编码时调用它,而不只局限于对文件的分析上。

    所以,变成两个类了。
    一个是“ParseBencoding”,另一个是“OpenFile”。很显然,前者就是独立出来的部分;而后者只用来打开文件并把文件内容独到缓冲区。

    这次的版本解决了“对BT信息文件解析(二)”中加载文件内容过慢的bug。下载的rar文件中有制作好的详细文档,这里就不在解释怎样使用了。
-------------------------------------------------------------------
2005.2.8 ~  2005.2.14
过年,真是耽误时间!! 			:~(
-------------------------------------------------------------------
2005.2.11
发现实现BT软件的编码问题很难解决,
尤其是http的get请求要求使用特殊的编码规则,
而编码使用UTF-8,
而Java使用Unicode,之间的转换已经可以实现,
但是转换后的字符串长度与原来不同,
一个20字节数组,编码后成为了一个30对字节的字符串,
不符合BT传输协议,
所以服务器总是返回无效请求。

郁闷!
无法实现BT软件,
但是还想研究一下P2P的知识,
开始学习JXTA。

继续实现 "文件共享" 的目的。
-------------------------------------------------------------------
2005.2.12 ~ 2005.2.26

一直在看书,
从头学习JXTA知识,
其中发生了很多困惑,
在中国,
使用JXTA的人并不多,
而且资源很有限,
www.jxta.org成了唯一获得资源的地方了。

一度想放弃,但是……

在不断的实践和“探索”中,
解决了所有问题。
-------------------------------------------------------------------
2005.2.27

开始搭建JXTA开发平台,
编译、执行书上的范例,
比较成功。

第一次对JXTA产生好感!  	:)
-------------------------------------------------------------------
2005.2.28
自己定义了使用JXTA共享文件的协议,
BT的协议在这里起到了很大的作用,
保留了Python语言使用的数据结构(B编码)。

由于JXTA不需要服务器,
所以,对元文件的“键值”作了一些修改,
其中传输协议的感动最大,
以发挥JXTA在传输数据时与众不同的威力。
-------------------------------------------------------------------
2005.3.1

1、对元文件的解码
2、对元文件的编码
3、NewWork里实现了加入net组和river组,
	对river组的搜索
		搜索是事件驱动的
	对搜索结果输出 (有待进一步画画)
	记录加入的组
	可以删除以加入的组
-------------------------------------------------------------------
2005.3.2
1、增加了JoinedPeerGroups类,继承Hashtable。
   专门对“加入的组”进行操作。
	(keyName,keyValue):
	keyName是加入组的组名(String);
	keyValue是加入组的组信息(另一个Hashtable对象)
		另一个Hashtable对象:
			keyName是:PeerGroup、服务……(String);
			keyValue是组信息:具体的对象。
2、NetWork类中的joinedPeerGroups属性属于JoinedPeerGroups对象。
3、完成了TaskInfo类,记录每个Task的信息。
	具有把自己串行化的功能,可以使下次继续使用;
	具有把自己逆串行化的功能,是一个public static Object方法。
-------------------------------------------------------------------
2005.3.5
1、基本完成了publish方的上传代码。
2、通过Task对象,生成publish或join任务对象。在这里创建“输入管道”,并加监听器。

   对于publish任务,生成publishManagerListener对象,它是publishTask的输入管道的监听器。
   第一次启动监听器时,生成一个UploadManager对象,专门向管道输出数据。
   一旦有数据到输入管道,就加入缓存(MessageBuffer),
   只要缓存里有数据,UploadManager对象就取出数据,分析请求并输出对方所需数据。
   MessageBuffer里没有数据时,由publishManagerListener对象阻塞UploadManager对象。
   使后者不能输出数据,如果publishManagerListener又监听到了数据,就唤醒UploadManager对象,
   使它继续从MessageBuffer里取出数据,继续运行。
3、UploadManager类,没有加sleep方法。 	////////////(注意)/////////////
4、join任务还没有实现。			////////////(注意)/////////////
-------------------------------------------------------------------
2005.3.6
1、实现了join任务的upload和download。
2、方法类似publish的upload,不同的是:
	他们分别是两个线程,分别充当两个缓冲区的消费者。
	这两个缓冲区的生产者是同一个监听器(joinedManagerListener),
	这个监听器将收到的数据,分类存入缓冲区。
3、join任务时,构造TaskInfo对象需要PeerGroup对象。
4、join任务时,再显示的初始化此任务。
-------------------------------------------------------------------
2005.3.7
1、join任务,先下载元文件,在根据是单、多文件出现保存对话框,通过这个自动设置
	AbsolutionFile属性。
2、join任务,对等待下载的文件遍历,生成目录结构。
3、join任务,自动对未下载完的文件划分大小。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -