| 
| 
 | Вопрос # 3 435/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Помогите пожалуйста написать функцию получения точного времени из интернета (http://www.direct-time.ru/index.php?id=1). Заранее спасибо!
 
|  |   Вопрос задал: Free (статус: Посетитель)Вопрос отправлен: 23 ноября 2009, 12:51
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Pasha!На вкладках с Indy ищем компонент TIdDayTime. в свойство Host вписываем NTP сервер, который находиться гуглом или к примеру здесь  http://support.ntp.org/bin/view/Servers/NTPPoolServers Можно спросить у вашего провайдера или вуза.
 также ставим кнопку и метку (TLabel). пишем для кнопки код
 
 IdDayTime1.Connect;
Label1.Caption := IdDayTime1.DayTimeStr;
IdDayTime1.Disconnect;Запускаем, жмем, наслаждаемся. Можно аккуратно этот код завернуть в таймер:) Если же хочется уметь правильно синхронизировать время то тут поможет соседний компонент TIdTime
 для него пишем где то такой код
 
 procedure TForm1.Button1Click(Sender: TObject);
begin
  IdTime1.Host := 'time.nist.gov';//это сервер, надо выбирать подходящий.
  try
    IdTime1.SyncTime ;
  finally
    IdTime1.Disconnect;
  end;
end;
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 24 ноября 2009, 14:56
 Оценка за ответ: 3
 Комментарий к оценке: Спасибо! |  
 Мини-форум вопросаВсего сообщений: 5; последнее сообщение — 24 ноября 2009, 15:24; участников в обсуждении: 2. 
|   | Вадим К (статус: Академик), 23 ноября 2009, 13:40 [#1]:а надо именно с этого сайта? хорошее качество по любому не получиться, всё таки задержки в канале... В целом. для получения точного времени есть протокол NTP. Этот прокол умеет обходить задержки в сети и другие проблемы.
 В Indy даже есть компоненты
   Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Free (статус: Посетитель), 23 ноября 2009, 17:24 [#2]:Нет, время можно узнавать и из другого сайта, главное чтобы время было как можно точнее (до секунд, либо миллисекунд), хотя насколько я знаю - максимальная точность - до секунд. |  
|   | Вадим К (статус: Академик), 23 ноября 2009, 17:37 [#3]:с помощью NTP протокола можно получать до долей секунд даже на самых плохих каналах. Почему?
 - клиент делает запросы и измеряет время прихода ответа, потом корректирует.
 - клиент делает несколько запросов.
 - много серверов, и при правильном подходе можно с несколько серверов брать время.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Free (статус: Посетитель), 24 ноября 2009, 14:36 [#4]:Опишите пожалуйста, как это реализовать. |  
|   | Вадим К (статус: Академик), 24 ноября 2009, 15:24 [#5]:Что за люди пошли??? узнаешь, что им надо, даешь решение, а они тройку ставят... Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |