Главная страница
    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.048 c
15-1161055357
Slider007
2006-10-17 07:22
2006.11.05
С днем рождения ! 17 октября


2-1161113639
kester
2006-10-17 23:33
2006.11.05
Аля WinHex


15-1161156717
IMHO
2006-10-18 11:31
2006.11.05
Динамо Киев идет на вечный рекорд Спартака?


15-1160661814
Один из
2006-10-12 18:03
2006.11.05
Возможно ли заработать на встраиваемой рекламе?


15-1160733102
Elen
2006-10-13 13:51
2006.11.05
Математический Вопрос





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский