Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

большой размер файла


anton773 ©   (2006-06-13 04:59:00) 

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


Defunct   (2006-06-16 02:06:00) [1]

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

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

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


anton773   (2006-06-14 04:57:00) [2]


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

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


Defunct   (2006-06-14 04:22:00) [3]

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

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

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

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


anton773   (2006-06-13 21:13:00) [4]

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('успешно загружено');


novill   (2006-06-13 15:55:00) [5]


> anton773

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


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


> Почему?


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо