Hallo zusammen,
angeregt durch Michael Puffs InetTime, das das Time-Protokoll über Port 37 ohne irgendwelche Komponenten nutzt, wollte ich versuchen, das Ganze auch für das (S)NTP-Protokoll über Port 123 zu adaptieren.
So weit ich die
RFC's verstanden habe, unterscheiden sich das Time- (
RFC 868) und das NTP- (
RFC 1305) und SNTP- (
RFC 2030) Protokoll hinsichtlich der zurückgelieferten Daten "nur" darin, dass es sich einmal um einen 32-Bit-Wert und einmal um 'ne 64-Bit-Zahl handelt.
Also:
Delphi-Quellcode:
var
sc : tSocket;
sa : tSockAddr;
begin
ZeroMemory (@sa, sizeof(sa));
sc := socket (AF_INET, SOCK_STREAM, 0);
sa.sin_addr.S_addr := integer(pointer(hostent^.h_addr_list^)^);
sa.sin_family := AF_INET;
sa.sin_port := htons(123);
result := connect (sc, sa, sizeof (sa));
und genau da ist dann der Punkt erreicht, an dem die Sache schiefgeht:
Entweder "Connection refused" oder "Timed Out" ...
Ich habe keine Idee, woran das liegen könnte - aber vielleicht jemand von euch? Bin für jeden Tipp dankbar.
uli.