hi i work on a project for download a large file in multiconnection.i used this code but have some problems and didn't work connections together.
program.cs:
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<FileDownloader> filewonloadersList = new List<FileDownloader>();
System.Net.WebRequest req = System.Net.HttpWebRequest.Create("http://filetests.hosthop.com/Large_File_Downloads/100M.zip");
req.Method = "HEAD";
System.Net.WebResponse resp = req.GetResponse();
int responseLength = int.Parse(resp.Headers.Get("Content-Length"));
int downloadparts = responseLength / 5;
for (int i = 0; i < responseLength; i = i + downloadparts)
{
FileDownloader filedownloadlistitem = new FileDownloader();
filedownloadlistitem.Start = i;
filedownloadlistitem.End = i + downloadparts;
filedownloadlistitem.partnumber = filewonloadersList.Count + 1 ;
filedownloadlistitem.Url = req.RequestUri.ToString();
filewonloadersList.Add(filedownloadlistitem);
}
List<Thread> threadList = new List<Thread>();
for (int i = filewonloadersList.Count-1; i >= 0; i--)
{
ThreadStart ts = new ThreadStart(filewonloadersList[i].DoDownload);
Thread run = new Thread(ts);
threadList.Add(run);
run.Start();
,,}
}
}
}
and Filedownloader.cs is:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net;
using System.Threading;
namespace ConsoleApplication1
{
public class FileDownloader{
public int Start;
public int End;
public string Url;
public object partnumber;
public void DoDownload(){
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(Url);
myHttpWebRequest.AddRange(Start, End);
HttpWebResponse myHttpWebResponse=null;
while (myHttpWebResponse == null)
{
try
{
myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
}
catch { }
}
Stream streamResponse = myHttpWebResponse.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
Char[] readBuffer = new Char[256];
int count = streamRead.Read(readBuffer, 0, 256);
TextWriter write2file = new StreamWriter("c:\\testdownloadfile" + Convert.ToString(partnumber) + ".txt", true);
while (count > 0)
{
String outputData = new String(readBuffer, 0, count);
Console.WriteLine(outputData);
write2file.Write(outputData);
count = streamRead.Read(readBuffer, 0, 256);
Thread.Sleep(1);
}
streamRead.Close();
write2file.Close();
streamResponse.Close();
myHttpWebResponse.Close();
}
}
}
how can i solve it?plz help!ik