Ilyen alkalmazás készítéséhez a Time Protocol-t (RFC 868) kell megvalósítanunk. Alapértelmezés szerint ez a 37 TCP porton keresztüli kommunikációt használja fel az adatok küldésére. Ez leegyszerűsítve egyetlen számot fog tartalmazni, mely 1900. január 1-jétől eltelt időt adja meg másodpercben.
További információ a következő címen található:
http://www.rfc-editor.org/rfc/rfc868.txt
Szerver alkalmazás
A TimeServer alkalmazás elkészítéséhez az Indy Servers palettán lévő IdTimeServer komponenst kell felhasználnunk.
Komponens elhelyezése után, ha megfelel az alapértelmezett 37-es port, akkor más tennivalónk nincs is a szerver alkalmazással, ahhoz hogy működőképes legyen. Ha másik porton szeretnénk a kommunikációt lefolytatni, akkor változtassuk meg a komponens DefaultPort property értékét.
A kezdő dátum (1900. január 1.) értékét is megváltoztathatjuk BaseDate property-ben.
A komponens OnConnect eseménye akkor jön létre, amikor egy kliens kapcsolódik a szerver alkalmazásunkhoz. Amikor e kapcsolat megszűnik, akkor pedig az OnDisconnect esemény keletkezik.
Kliens alkalmazás
A kliens alkalmazás elkészítéséhez az Indy Clients paletta IdTime komponense szükséges.
A szerver alkalmazáshoz történő kapcsolódáshoz csupán az IdTime komponens Host property-jét kell beállítanunk. Itt kell megadnunk a szerver nevét vagy IP címét.
Ezt követően a komponens DateTime property-jéből máris kiolvasható a szerver gép aktuális dátuma és időpontja.
procedure TForm2.Button1Click(Sender: TObject);
begin
ListBox1.Items.Clear;
IdTime1.Host:=LabeledEdit1.Text;
ListBox1.Items.Add(' Server time: '+DateTimeToStr(IdTime1.DateTime));
ListBox1.Items.Add(' DateTimeCard: '+IntToStr(IdTime1.DateTimeCard));
ListBox1.Items.Add(' RoundTripDelay: '+IntToStr(IdTime1.RoundTripDelay));
end;