Я пытаюсь сделать небольшую программу для загрузки файлов через HTTP в C #.
Базовая загрузка с WebClient работает нормально, но теперь я хотел попробовать
загрузка файла с несколькими подключениями.
Пока что:
HttpWebRequest HttpRequest = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse HttpResponse = (HttpWebResponse)HttpRequest.GetResponse();
Stream ResponseStream = HttpResponse.GetResponseStream();
FileStream FSChunk = new FileStream(destination, FileMode.OpenOrCreate, FileAccess.Write);
while ((BytesThisRead = ResponseStream.Read(Buffer, 0, (int)BytesPerRead)) != 0)
{
FSChunk.Write(Buffer, 0, BytesThisRead);
TotallyRead += BytesThisRead;
if (TotalReadLength - TotallyRead < buffersize)
BytesPerRead = TotalReadLength - TotallyRead;
}
Я могу загрузить Файл, используя этот ResponseStream, также разделенный на 2 части, используя один ResponseStream. Моя проблема в том, что WebStreams не доступны для поиска, поэтому я не могу просто установить позицию для чтения.
Как мне удается загрузить один файл по HTTP одновременно, используя разные потоки (соединения, я думаю, один поток не может использоваться несколькими участниками).
Я прочитал много статей здесь и несколько часов гуглил, но не могу найти решение.
Имеет ли отношение кодирование передачи Chunked к этой теме?
С наилучшими пожеланиями,
Damon