![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать скорость передачи данных на FTP сервер????
Maxim Pshevlotsky © (2003-07-08 15:59:00)
Как узнать скорость передачи данных на FTP сервер. Как мне кажется нужно использовать TNMFtp но что-то он не работает у меня(Почему непойму?) Пробовал даже пример с файла справки и он не пашет. Пишет "Host Filed". Индевский вообще како-то непонятный компонент.
echo.Host:="www.microsoft.com";
echo.Connect;
Label1.Caption:=echo.Echo("H");
Label2.Caption:=FloatToStr(echo.ElapsedTime);
Echo.Disconnect;
Карелин Артем (2003-07-09 12:55:00) [1]
Maxim Pshevlotsky © (09.07.03 05:58)
А как насчет событий при отсылки пакетов? Названия не помню, но через них точно делал. А время сам отмерял.
Anatoly Podgoretsky (2003-07-09 10:58:00) [2]
Зато известен размер, количество переданных байт, прошедшее время. Функция из задачника начальной школы.
Maxim Pshevlotsky (2003-07-09 05:58:00) [3]
Donatas (09.07.03 00:10)
Может я и плохой математик конечно но:
1. Типа в TIDFTP нет НИтаких событий и нет НИBytesSent
2. Нужно узнать время до того как отправиться на сервер какой-нибудь файл, тоесть не известно НИскорости НИвремени
Что скажете?
Donatas (2003-07-09 00:10:00) [4]
а типа математикой заняться? :)
OnPacketRecvd
OnPacketSent
BytesSent: longint;
ы? типа объем/на время поделить :)
Maxim Pshevlotsky (2003-07-08 18:11:00) [5]
Карелин Артем © (08.07.03 16:09)
ОЙ ЕЛКЛМН ПТЬФУ БЛИН ПАРДОН ОШИБСЯ НЕ TNMFTP а TNMECHO
Maxim Pshevlotsky (2003-07-08 17:49:00) [6]Карелин Артем © (08.07.03 16:09)
Хорошо, ну тогда как правильно узнать время. Я делаю вот так:
{Size - Размер файла, возвращает время в сек.}
function TfMain.WhatsTime(Size: Integer): Double;
Var Time: TTimer; Len: Integer;
begin
Time:=TTimer.Create(nil);
Time.Interval:=1; //Поставил 1 хотя минимальный тик=50
Time.OnTimer:=TimeTimer;
Time.Enabled:=True;
ftp.WriteLn("NOOP"); //Посылаю NOOP и засекаю время за сколько
( "NOOP")
Карелин Артем © (08.07.03 16:09)
Хорошо, ну тогда как правильно узнать время. Я делаю вот так:
{Size - Размер файла, возвращает время в сек.}
function TfMain.WhatsTime(Size: Integer): Double;
Var Time: TTimer; Len: Integer;
begin
Time:=TTimer.Create(nil);
Time.Interval:=1; //Поставил 1 хотя минимальный тик=50
Time.OnTimer:=TimeTimer;
Time.Enabled:=True;
ftp.WriteLn("NOOP"); //Посылаю NOOP и засекаю время за сколько
//ответит
ftp.WaitFor("NOOP");
Time.Enabled:=false;
Time.Free;
Result:=((MSec)*Size)/1000; //Возвращает в сек. и еще врет на сек. +10!
MSec:=0;
end;
procedure TFMain.TimeTimer(Sender: TObject);
begin
MSec:=MSec+1;
end;
Карелин Артем (2003-07-08 16:09:00) [7]
Мдя. Что должен показать данный код? Только прежде чем ответить помедитируй над кодом в поисках смысла.
P.S. Скорость=Обьем/время.