Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

большой размер файла   Найти похожие ветки 

 
anton773 ©   (2006-06-13 04:59) [0]

Здравствуйте! Создал свой закатчик файлов с возможностью докачки в случае обрыва связи.Все работает,но объём траффика на 30% больше размера скачанного файла.Почему? Использую Wininet.


 
Сергей М. ©   (2006-06-13 08:40) [1]


> Почему?


Хотя бы потому что используется IP-протокол


 
novill ©   (2006-06-13 15:55) [2]


> anton773

как докачку организовывали?


 
anton773 ©   (2006-06-13 21:13) [3]

To Сергей  я понимаю что объем траффика будет всегда больше размера скачанного файла но не на треть же! Вот код: procedure TForm2.BitBtn1Click(Sender: TObject);
var
F: file;
Resumepos,Bufferlen,Sumsize :dword;
hSession,hUrl:Hinternet;
Buffer: array[1..1024] of byte;
err: boolean;
begin
Sumsize:=0; Resumepos:= 0;
AssignFile(F,Table1.FieldByName("filename").AsString);
if FileExists(Table1.FieldByName("filename").AsString) then
begin
Reset(f,1);
Resumepos:= FileSize(f);
Seek(f,filesize(f));
end  else Rewrite(f,1);
NADO := true;
hSession:= InternetOpen("andowload",PRE_CONFIG_INTERNET_ACCESS,nil,nil,0);
hUrl:= InternetOpenUrl(hSession,pchar(Table1.FieldByName("Url").AsString),nil,0,0,0);
InternetQueryDataAvailable(hUrl,Sumsize,0,0);
Table1.Edit;
Table1.FieldByName("Size full").AsInteger:= Sumsize ;
if Resumepos > 0 then
begin
InternetSetFilePointer(hUrl,Resumepos,nil,0,0);
end;
repeat
err:= InternetReadFile(hUrl,@buffer,SizeOf(Buffer),Bufferlen);
if err= false then
begin
ShowMessage("облом");
Exit;
end;
BlockWrite(f,Buffer,Bufferlen);
Application.ProcessMessages;
until (Bufferlen= 0) or (NADO= false);
ShowMessage("успешно загружено");


 
Defunct ©   (2006-06-14 04:22) [4]

> Вот код
Код жуткий..

А по поводу избыточности.
TCP/IP - имеет строго фиксированный объем служебного трафика (т.е. чем больше будет суммарный объем пакета, тем больше будет процент полезных данных).

HTTP/FTP протоколы, которые над TCP имеют изменяющийся объем служебной информации.

30% служебной информации вероятно из-за того, что у вас используется мизерный объем пакетов (256-500 байт). Часом не dialup соединение?


 
anton773 ©   (2006-06-14 04:57) [5]


> Часом не dialup соединение?

Угадали. А чем вам не нравиться Код? Я не претендую на корректность кода(новичок) Если знаете подскажите что не так.Буду благодарен.


 
Defunct ©   (2006-06-16 02:06) [6]

anton773 ©   (14.06.06 04:57) [5]
> Угадали.
Теоретически можно увеличить объем пакетов PPP протокола, тогда отношение полезного трафика к служебному увеличится. Если линия цифровая и сбоев в работе модема не наблюдается, можно повышать объем пакета до 2kb. К сожалению не могу подсказать где в Windows можно осущетсвить эту настройку (и возможно ли вообще).

> Если знаете подскажите что не так.Буду благодарен.

Подсказка - отсутствует форматирование, что приводит к:
- не просматривается алгоритм работы процедуры;
- усложняется чтение кода;
- усложняется поиск возможных ошибок.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.051 c
1-1159166924
aKirill.INFO
2006-09-25 10:48
2006.11.05
Формат фала msm и msi


15-1161187243
Хинт
2006-10-18 20:00
2006.11.05
Вопрос по html (таблицы)


15-1161073849
Kolan
2006-10-17 12:30
2006.11.05
Макросы в BDS2006


2-1161266636
vase
2006-10-19 18:03
2006.11.05
КАК в WINDOWS узнать права пользователей(к какой группе )


1-1159414736
apic
2006-09-28 07:38
2006.11.05
Работа с Edit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский