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

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

Как с помощью Delphi можно связаться с сервером точного времени?


Err_f ©   (2007-10-09 20:10:00) 

Как присвоить переменной "s" точное значение времени, используя один из серверов в Интернете? Чтобы в дальнейшем использовать это значение для синхронизации системных часов
...
DecodeDate(DateTimePickerSys.DateTime, s.wYear,s.wMonth,s.wDay);
if not SetSystemTime(s) then RaiseLastOSError;
...


Anatoly Podgoretsky   (2007-10-13 12:48:00) [1]

TIdTime is a client implementation of the Time Protocol as described in the Internet Standards document:

RFC 868 - Time Protocol ( http://www.rfc-editor.org/rfc/rfc868.txt)

Time is a simple protocol for synchronizing time on a local network. For a time protocol with higher accuracy over several networks, use TIdSNTP. To retrieve the current date and time in human-readable form, use TIdDayTime.

Please note that the Time Protocol in its current form cannot handle most dates after the year 2035. This limitation is stated in RFC 868.


йопцопцоп   (2007-10-13 11:12:00) [2]


> - что-то прописать в инспекторе объектов?


Приложение-то консольное. Какой инспектор объектов?
Конечно сменить хост. Значит тот, который прописан был, не отвечает, либо порты закрыты.
Какой порт - смотри в исходниках. На память не помню.


Err_f   (2007-10-10 11:57:00) [3]

Запускаю - пишет:
"... raised exception class EIdSocketError with message 'Soket Error # 10060 Connection timed out.'. ..."

ошибка возникает после длительного зависания программы на строке:
CurrTime := iT.DateTime;

В чём может быть дело? Поменять iT.Host, или требуется открыть какой-то порт? Или надо как-то предварительно настроить компоненты:
IdComponent, IdTCPConnection, IdTCPClient, IdTime, IdBaseComponent
- что-то прописать в инспекторе объектов?


йопцопцоп   (2007-10-10 08:51:00) [4]

unit uGetSetTime;

interface

uses
 Windows, SysUtils, Classes,  IdComponent, IdTCPConnection, IdTCPClient, IdTime,
 IdBaseComponent;

implementation

procedure SetTime;
var
 iT: tIdTime;
 CurrTime: TDateTime;
 st: TSystemTime;
 YY,MM,DD,HH,NN,SS,MS: Word;
begin
 iT := tIdTime.Create(nil);
 iT.Host := 'ntps1-0.uni-erlangen.de';
 CurrTime := iT.DateTime;
 iT.Free;
 GetLocalTime(st);
 DecodeDate(CurrTime,YY,MM,DD);
 DecodeTime(CurrTime,HH,NN,SS,MS);
 st.wYear := YY;
 st.wMonth := MM;
 st.wDay := DD;
 st.wHour := HH;
 st.wMinute := NN;
 st.wSecond := SS;
 st.wMilliseconds := MS;
 SetLocalTime(st);
end;

end.


easy   (2007-10-09 21:37:00) [5]

http://dfc.com.ru/?sid=2&id=9&itemid=34


Anatoly Podgoretsky   (2007-10-09 21:37:00) [6]

А у тебя, что Д6-?
На самом деле не требуется для этого никакого монстра в виде Инди, достаточно любых легких компонент работающих с сокетами, там все просто.


Err_f   (2007-10-09 21:30:00) [7]

Хм...
вопросов больше, чем ответов...
Может FastNet восстановить, с ними хоть что-то есь!


Anatoly Podgoretsky   (2007-10-09 21:13:00) [8]

> Err_f  (09.10.2007 20:57:01)  [1]

Описания надо искать в RFC, только надо понять какая из трех базовых технологий используется в этих методах.


Err_f   (2007-10-09 20:57:00) [9]

Вычитал про:
"TIdDayTime и TIdDayTimeServer"
по описанию - то, что надо...

но как ими воспользоваться... ни одного примера... (((
даже - чем отличается: TIdDayTime от TIdDayTimeServer?


Наверх

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