Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.04;
Скачать: CL | DM;

Вниз

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

 
Err_f   (2007-10-09 20:10) [0]

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


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

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

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


 
Anatoly Podgoretsky ©   (2007-10-09 21:13) [2]

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

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


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

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


 
easy ©   (2007-10-09 21:37) [4]

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


 
Anatoly Podgoretsky ©   (2007-10-09 21:37) [5]

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


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

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.


 
Err_f   (2007-10-10 11:57) [7]

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

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

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


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


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


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


 
Anatoly Podgoretsky ©   (2007-10-13 12:48) [9]

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.



Страницы: 1 вся ветка

Текущий архив: 2007.11.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.036 c
11-1175550542
nsvi
2007-04-03 01:49
2007.11.04
Не могу найти пакет KOLNTprivileges, про который пишет в своей кн


2-1192004898
Ega23
2007-10-10 12:28
2007.11.04
А почему у TDateTimePicker


15-1191593116
Черный Шаман
2007-10-05 18:05
2007.11.04
Что лучше широкоформатка 16:9 или классика 4:3(мониторы)


11-1175198781
ElectriC
2007-03-30 00:06
2007.11.04
a-la KeyPreview


2-1192034694
asm_viator
2007-10-10 20:44
2007.11.04
TPageControl, TPanel...