Potřeboval
jsem pro jeden počítač s Windows 2000 vytvořit konzolového SNTP klienta
pro snadnou synchronizaci času s daným NTP serverm, a začal tak zkoumat
komponenty v Delphi, C++ a Visual Basicu. Zůstal jsem u Delphi, jeho
komponenty jsou opravdu vynikající, s dobře dokumentovanými kvalitními
příklady, a snadno použitelné.
C++ jsem nezvolil pro primitivnost a absenci funkcí, Visual Basic je sice funkčností extrémně rozsáhlý, ale velice pomalu se načítá (oproti Delphi).
Pro zprovoznění SNTP komponenty postačí snadný kus kódu na začátek, jasný snad i naprostým laikům.
Příklad - kód
Jednoduchého konzolového SNTP klienta s adresou předávanou pomocí parametru při spouštění, ošetření chyb se socketem a kontrolou úspěšnosti uděláte během pár minut, například tímto kódem:
Příklad - kód
Jednoduchého konzolového SNTP klienta s adresou předávanou pomocí parametru při spouštění, ošetření chyb se socketem a kontrolou úspěšnosti uděláte během pár minut, například tímto kódem:
//SNTPClient v1.0 by Kodl
program SNTPclient;
{$APPTYPE CONSOLE}
uses
SysUtils, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient, IdSNTP;
var
SNTP: TIdSNTP;
tmp: TIdSNTP;
success: Boolean;
begin
SNTP := TIdSNTP.Create(tmp);
WriteLn('SNTPclient v1.0 - (c) 2007 Kodl Software');
WriteLn;
if ParamStr(1) = '' then
begin
WriteLn('Nebyla zadana adresa NTP serveru.');
exit;
end;
SNTP.Host := ParamStr(1);
SNTP.Port := 123;
try
success := SNTP.SyncTime;
except
on E: Exception do
begin
WriteLn('Nastala chyba pri manipulaci se socketem!');
end;
end;
if success then
WriteLn('Cas byl synchronizovan z '+ParamStr(1)+' v '+TimeToStr(Time)+' ('+DateToStr(Date)+')');
SNTP.Free;
end.
Nejzajímavější
je asi velice všestranný objekt SNTP, který akceptuje jako vlastnost
libovolnou jemu dostupnou vlastnost, umí používat různé porty (na jednom
je třeba čas středoevropský, na dalším Greenwitchský a na třetím nějaký
další) a obsahuje i SyncTime funkci pro synchronizaci času a jeho
přiřazení místo času počítače pomocí mě neznámých funkcí a maker
nějakého objektu.
A celý program se neváže jen na Windows 2000/XP.
Příklad - vzhled
Příklad - vzhled
Vlastní plně interaktivní aplikace vygenerovaná těmito pár řádky kódu vypadá poté následovně:
Časových serverů můžete být de-facto neomezené množství.
Za Delphi stojí zejména Borland, kterému tímto gratuluji ke skvělé práci :-) Podobnou jednoduchou aplikaci můžete stáhnout online i na http://kodlsoft.wz.cz/product/SNTPclient.
Za Delphi stojí zejména Borland, kterému tímto gratuluji ke skvělé práci :-) Podobnou jednoduchou aplikaci můžete stáhnout online i na http://kodlsoft.wz.cz/product/SNTPclient.
Žádné komentáře:
Okomentovat