Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Delphi-компонент для коннекта к NTP серверам

Автор: maomao
Дата сообщения: 17.02.2005 14:41
Помогите найти компонент для коннекта к NTP серверам.
Именно по NTP (Network Time Protocol) а не по SNTP.
Вроде назывался TNTP
Автор: MrZeRo
Дата сообщения: 17.02.2005 15:34
TIdTime:

Цитата:

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)

не подходит?
(набор Indy компонентов)
Автор: maomao
Дата сообщения: 17.02.2005 17:42
Нет, не подходит.

Базовые сведения о протоколе NTP
Назначение протокола состоит в синхронизации клиента или сервера с сервером или источником точного времени (радио, атомные часы или еще что). Стандартизована (Draft Standard) версия 3 протокола NTP (RFC-1305), но текущая реализация поддерживает как 3-ю, так и 4-ю версии. Синхронизируется не только текущее значение времени, но и частота отсчета таймера. Обеспечивает точность до милисекунды в пределах LAN и десятков милисекунд посредством WAN. Предусмотрена криптографическая защита (шифрование контрольной суммы), одновременное подключение к нескольким серверам на случай аварии, алгоритмы усреднения и т.д. Поддерживает самонастраиваемую иерархическую архитектуру сети синхронизации (симметричный механизм обмена пакетами). Главные сервера (напрямую присоединенные к источнику точного времени) образуют первый слой (stratum), присоединенные непосредственно к ним - второй слой, и т.д. Для обмена информацией между используется протокол UDP (порт 123).

В Интернет (TCP/IP) возможны следующие методы синхронизации:
-аппаратное устройство (атомные часы, GPS приемник и т.д.)
-Network Time Protocol (крайне рекомендуется, расхождение хода в миллисекунды внутри локальной сети и десятки миллисекунд при нормальной работе интернет)RFC-1305
-Simple Network Time Protocol (упрощенный вариант для клиентских компьютеров внутри локальной сети) RFC-2030
-Daytime protocol - RFC-867 (устарел, не рекомендуется)
-Time protocol - RFC-868 (как крайнее, временное средство при наличии в локальной сети синхронизированного другим способом источника времени)
-ICMP Timestamp message - RFC-792
-IP Timestamp options - RFC-781

На крайний случай устроит исходник клиента NTP на cpp, pas.
(переношу программу из Delphi в BCB6)
Автор: MrZeRo
Дата сообщения: 17.02.2005 18:10

Цитата:
исходник клиента NTP на cpp

Есть такая программа для синхронизации системного времени с NTP серверами - называется TClock. Распространяется с полными исходниками на С, так что в Google поищи ее, она маленькая. Не найдешь - кричи в ПМ, вышлю.
Автор: maomao
Дата сообщения: 17.02.2005 18:44
MrZeRo

Если это что-то японское:
(TClock allows you to modify the clock on the taskbar in Windows.
TClock Light is a simple version of TClock.)
-то там SNTP.

Мне нужно проще и ближе к среде Borland.
Буквально два вызова:
NTPStatus(TObject *Sender, int stCode)
NTPDone(TObject *Sender, AnsiString FromIP, TTimestamp Time, TNTPmessage NTP)
Автор: zhorzh1
Дата сообщения: 08.05.2009 11:19
http://www.prog-gate.pp.ru/fido7.ru.delphi.talk/1111.html

От: Gennadiy Poryev Кому: Kirill Suslov RU.DELPHI.TALK Дата: Mon, 11 Jul 2005 14:04:02 ОБСУДИТЬ В ФОРУМЕ Тема: Re[3]: Delphi 2005. Тpебования к железу, пpоизводительность.

{$APPTYPE CONSOLE}
program holywar;
uses Winsock;
var S : TSocket;
Remote : sockaddr_in;
WD : WSAData;
Reply : AnsiString;
begin
WSAStartup(02,WD);
S:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
Remote.sin_family:=AF_INET;
Remote.sin_port:=ntohs(13);

Remote.sin_addr:=TInAddr(Pointer((gethostbyname('time-a.timefreq.bldrdoc.gov'))^.h_addr_list^)^);
connect(s,Remote,SizeOf(sockaddr_in));
SetLength(Reply,$100);
SetLength(Reply,recv(s,Reply[1],$100,0));
Writeln(Reply);
end.



Добавлено:
вариант рабочий только что не компонентом.

Страницы: 1

Предыдущая тема: Как защитить свою программу


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.