![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Совпадает ли время на компьютере с настоящим
Сергей © (2011-06-06 10:35:00)Подскажите, можно ли проверить совпадает ли время с компьютерами со временем, допустим, на ntp серверах microsoft?
Есть ли встроенные процедуры допустим в indy или может кто-то заморачивался?
Заранее спасибо.
Gu (2011-06-06 11:34:00) [21]++
время на компе можно узнать так (там выше поменять в коде)
form1.Caption:='На сервере: '+datetimetostr(IdSNTP1.DateTime)+' на компе: '+datetimetostr(now);
после команды IdSNTP1.SyncTime; происходит синхронизация (по спец.алгоритму, кот.учитывает задержки передачи и соединений), если погрешность времени не очень большая. Если очень (например на год), то синхронизации не произойдет, и делать это надо ручками, примерно так:
if IdSNTP1.SyncTime=false then <принудительная установка системного времени (PcSetSystemTime:=IdSNTP1.DateTime) и повторная синхронизация>
(PcSetSystemTime)как установить системное время - пример: http://delphiworld.narod.ru/base/set_sys_date_time.html
Andy BitOff (2011-06-06 11:31:00) [22]
> oldman © (06.06.11 11:23) [10]
> а "настоящее" это какое?
11:31
oldman (2011-06-06 11:23:00) [23]
> с настоящим
а "настоящее" это какое?
Anatoly Podgoretsky (2011-06-06 11:23:00) [24]Чтобы знать погрешность надо иметь эталон, с которым можно сравнить.
А время доставки пакетов учитывается.
Inovet (2011-06-06 11:20:00) [25]> [5] Ega23 © (06.06.11 11:07)
> Погрешность будет всегда.
Интересно вот, погрешность эта известа? Время доставки пакетов как-то наверно учитывается +- неккоторая известная погрешность.
Gu (2011-06-06 11:19:00) [26]да, и не забудьте на фаэрволе проге разрешить в инет лазить по 123 порту
Gu (2011-06-06 11:17:00) [27]на форму кладем tIdSNTP из закладки компонентов Indy Clients
procedure TForm1.Button1Click(Sender: TObject);
begin
Try
IdSNTP1.Host:='time.nist.gov';
IdSNTP1.ReceiveTimeout:=1000;
IdSNTP1.Connect;
//IdSNTP1.SyncTime; // разремить, если надо синхронизировать время ПК с сервером
form1.Caption:=datetimetostr(IdSNTP1.DateTime);
IdSNTP1.Disconnect;
Except
form1.Caption:='Сервер не отвечает';
End;
end;
Ega23 (2011-06-06 11:07:00) [28]
> Подскажите, можно ли проверить совпадает ли время с компьютерами
> со временем, допустим, на ntp серверах microsoft?
Не совпадает. Погрешность будет всегда.
AtomicTime (2011-06-06 10:55:00) [29]или здесь:
http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.thirdpartytools.general/2005-02/0181.html
AtomicTime (2011-06-06 10:49:00) [30]Посмотри здесь:
http://www.nashgorod.ru/forum/viewtopic.php?f=36&t=180519
и дальше по ссылкам внизу страницы
Dennis I. Komarov (2011-06-06 10:44:00) [31]http://ru.wikipedia.org/wiki/NTP
Dennis I. Komarov (2011-06-06 10:40:00) [32]Разумеется можно...
(но есть "но", погрешность все-равно будет)