迅雷是怎样做到快速下载的?BT是怎么找到大量的种子的? 怎样同时写一个大文件? ( 积分: 50 )

  • 主题发起人 主题发起人 yanghai0437
  • 开始时间 开始时间
Y

yanghai0437

Unregistered / Unconfirmed
GUEST, unregistred user!
两个程序怎样才能快速在Internet或者局域网网络中传送一个或者多个文件?
一个发送一个接收。
迅雷是怎样做到快速下载的?BT是怎么找到大量的种子的?
假设从n个服务器上下载同一个文件(200M),然后再写入到本地硬盘,该怎样写?
我做了一个小程序,先用TFileStream创建一个同样大小的文件,然后用N个
线程同时一小块一小块(每块4K)的向本地文件写,这样写出来的文件没有错,可是
用磁盘分析看说这个文件是碎片文件,而且用了2分多钟(可能用了同步显示信息函数
浪费了时间)。请教该如何写?
 
两个程序怎样才能快速在Internet或者局域网网络中传送一个或者多个文件?
一个发送一个接收。
迅雷是怎样做到快速下载的?BT是怎么找到大量的种子的?
假设从n个服务器上下载同一个文件(200M),然后再写入到本地硬盘,该怎样写?
我做了一个小程序,先用TFileStream创建一个同样大小的文件,然后用N个
线程同时一小块一小块(每块4K)的向本地文件写,这样写出来的文件没有错,可是
用磁盘分析看说这个文件是碎片文件,而且用了2分多钟(可能用了同步显示信息函数
浪费了时间)。请教该如何写?
 
dxmylove@yahoo.com.cn,qq:171833017,http://www.websamba.com/dxmylove
文件上传下载,如果不能正常下载,可直接联系我
 
迅雷是记住哪个服务器有哪个文件
几个服务器一起下的模式
bt是通过服务器找到谁有这个文件的,服务器上有记取的这些信息
 
>迅雷是记住哪个服务器有哪个文件
>几个服务器一起下的模式
不是吧,迅雷程序总共才有多大,能记住那么多程序在哪个服务器。
我们使用的迅雷是怎么工作的,当我们需要下载一个文件时?
 
有服务器啊
我们服务器有2亿首mp3
怕什么
 
那就是说我随便在网上找到一个文件下载,迅雷都会除了从当前连接下载外,还会
上他们自己的服务器上查询,看是否存在这个文件?如果是这样,那么你们的服务器
将会十分巨大,而且访问的用户将也会很大,是不是这样?
就算上他们自己的服务器上查询,但是也会出现这样的问题:可能是相同的文件,但是
文件名却不一样,迅雷又该怎么处理?
 
服务器可以搞成分布式的,像电骡那样你共享一个文件后,其它一些机器就每人保存你一小部分内容,这样很快就在网络上拥有了该文件的"备份"

至于"可能是相同的文件,但是文件名却不一样",很简单的方法就可以解决,比如可以生成文件内容的md5,靠md5校验码就基本可以区分文件是否相同了吧?

如果你对这方面有兴趣,建议在网上找相关资料来看,比这么问要快捷准确的多~
 
我晕
连接就可以了么
有连接就可以下
你笨啊
就是个连接,连1k都不到
 
如果http也能加速
那就厉害了
 
迅雷是通过给下载链接一个参数指明从文件的多少字节正式开始下载,开几个线程,分别指定不同的位移就行了
一个文件10000个字节,一个线程下0到2000,一个下20001到40000这样5个线程就完了
BT是通过当前下载主服务器就是那个下载的种子来记录其它下载都的信息,然后把这些信息再发给你,你的BT进行测试后如果网络通就把你也登记到主服务器,你可能通过指定对文件下载时的不同位移来下载文件,好比这样
A是主服务器,b1,b2,b3是在你之前下载的,你可以找到四台服务器a,b1,b2,b3,你可以建立4个线程分别联接他们,分别下从b1的0字节到2000字节,从b2下2001到4000字节,如果b3下的慢,内容已经包括在b1,b2中,那就不在b3处下载,同样,你下载速度大于其它人时,也就是你下载文件的长度大于其它人时,b2,b3,b1也有可能从你这里下载文件,这样每个人对应的都是四台服务器当然就会快许多,下载文件之前会先检验文件内容的有效性
不知道这样的回答能否说清
 
可爱小猪,:
我所说的连接不是你们服务器上的连接。假设在我自己的服务器上有一个文件可以让
别人下载,迅雷是怎样做到高速下载的?怎么加速的?

另外在网络上发送一个数据包,这个包的大小为多大合适(主要是传送文件数据时)。
有人说超过2K就容易丢包,对不对?
生成文件内容的md5是怎么生成的,md5只是一种加密算法吧。
 
对啊
迅雷是不同服务器同时在下
那你上传到其他的服务器就可以了么
如果限制只能在本服务器下,那只能多线程
和flashget一样了
哪个是说的mtu,对udp有效,tcp不用考虑
一般中国的网络的mtu都在1500
1500内就可以了
 
谢谢可爱小猪。
生成文件内容的md5是怎么生成的,md5只是一种加密算法吧。
 
学习中,有伪代码就好了
 
MD5不是加密,只是一种内容签名算法,加密算法应该可以解密才对,MD5不能解出唯一原文,Google一把,到处都有MD5算法源码
 
好了,我去勾一把吧,谢谢了
 
每个下载都会有md5的
当下载一个文件的 时候
会把这个md5传到服务器的
找源的时候就找的是md5
清楚了吧
 
多人接受答案了。
 

Similar threads

后退
顶部