示例#1
0
文件: Program.cs 项目: xxy1991/cozy
        static void Main(string[] args)
        {
            string url = @"http://speed.myzone.cn/WindowsXP_SP2.exe";
            HttpFileSplit split = new HttpFileSplit();
            long blockSize = 1024 * 3;
            if (split.TryToSplit(url, blockSize))
            {
                Console.WriteLine("url:" + url);
                Console.WriteLine("fileSize_:" + split.fileSize_);
                Console.WriteLine("blockCount_:" + split.blockCount_);
                Console.WriteLine("lastBlockSize_:" + split.lastBlockSize_);

                Console.ReadKey();
                byte[] data = HttpDownloadRange.Download(url, 3 * split.blockSize_, 4 * split.blockSize_ - 1);
                if (data != null && data.Length == split.blockSize_)
                {
                    Console.WriteLine("HttpDownloadRange ok");
                }
            }
            Console.ReadKey();
        }
示例#2
0
文件: Program.cs 项目: sgww/cozy
        static void Main(string[] args)
        {
            string        url       = @"http://speed.myzone.cn/WindowsXP_SP2.exe";
            HttpFileSplit split     = new HttpFileSplit();
            long          blockSize = 1024 * 3;

            if (split.TryToSplit(url, blockSize))
            {
                Console.WriteLine("url:" + url);
                Console.WriteLine("fileSize_:" + split.fileSize_);
                Console.WriteLine("blockCount_:" + split.blockCount_);
                Console.WriteLine("lastBlockSize_:" + split.lastBlockSize_);

                Console.ReadKey();
                byte[] data = HttpDownloadRange.Download(url, 3 * split.blockSize_, 4 * split.blockSize_ - 1);
                if (data != null && data.Length == split.blockSize_)
                {
                    Console.WriteLine("HttpDownloadRange ok");
                }
            }
            Console.ReadKey();
        }
示例#3
0
文件: DownloadTask.cs 项目: sgww/cozy
 public bool InitTask()
 {
     split_ = new HttpFileSplit();
     if (split_.TryToSplit(RemotePath, BlockSize))
     {
         if (!CreateCacheFile())
         {
             return(false);
         }
         finishCount   = 0;
         taskState_    = new byte[split_.blockCount_];
         subTaskQueue_ = new Queue <DownloadSubTask>();
         lock (subTaskQueue_)
         {
             for (int i = 0; i < split_.blockCount_ - 1; ++i)
             {
                 subTaskQueue_.Enqueue(new DownloadSubTask()
                 {
                     Id         = i,
                     RemotePath = RemotePath,
                     from       = split_.blockSize_ * i,
                     to         = split_.blockSize_ * (i + 1) - 1,
                 });
                 taskState_[i] = 0;
             }
             subTaskQueue_.Enqueue(new DownloadSubTask()
             {
                 Id         = (int)split_.blockCount_ - 1,
                 RemotePath = RemotePath,
                 from       = split_.blockSize_ * (split_.blockCount_ - 1),
                 to         = split_.fileSize_ - 1,
             });
             taskState_[split_.blockCount_ - 1] = 0;
         }
         return(true);
     }
     return(false);
 }