AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

INetTime

Ein Thema von Luckie · begonnen am 12. Jan 2003 · letzter Beitrag vom 1. Mär 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie
Registriert seit: 29. Mai 2002
So hier ist es also nun. Ein kleines Programm um mittels eines Zeitservers aus dem Internet die Systemzeit zu stellen.

Eine Serverliste ist mit in die Ressource einkompiliert und wird beim Start extrahiert, falls nicht vorhanden. Der Benutzer kann sie dann beliebig editieren und erweitern.

Unter Win ME und 2000 schon erfolgreich getestet. Unter XP soll es zu erheblichen Performanceproblemen gekommen sein.

Es ist nur so, da das "Zeit holen" noch nicht in einem separaten Thread liegt, kann das Programm eventuell einfrieren, wenn es längerdauert die Verbindung zum Server herzustellen.

Ach so. Die Server Zeit ist UTC! Das wird aber von Windows beim Stellen der Systemzeit berücksichtigt.

Download: INetTime
Ein Teil meines Codes würde euch verunsichern.
 
Benutzerbild von RomanK
RomanK

 
Delphi 7 Personal
 
#2
  Alt 12. Jan 2003, 18:41
Nettes Tool!!!
Hab XP und es hat einwandfrei getan, bis auf dass das die Sekunden nich genau abgeglichen wurden ...
Roman Keller
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#3
  Alt 12. Jan 2003, 18:52
Das mit den Sekunden liegt wohl draan, das es etwas verzögert aktualisiert wird. Es muß ja die Verbindung zum Server hergestellt werden, das Signal muß empfangen werden, dann kommt noch mein Timer ins Spiel, ...
Michael
  Mit Zitat antworten Zitat
CalganX

 
Turbo Delphi für Win32
 
#4
  Alt 12. Jan 2003, 18:57
Hi Luckie,
du hast das gemacht, dass ich bereits vor langem als Tutorial schreiben wollte...
Naja, nun zum Programm: Hab ebenfalls XP; läuft problemlos. Nur ruckelt ein wenig. Sonst funktioniert alles.

Chris
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#5
  Alt 12. Jan 2003, 19:07
Dem vorangegangen war dieser Thread in Auq.de: http://www.auq.de/viewtopic.php?t=5682
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#6
  Alt 13. Jan 2003, 09:09
So neue Version 1.1. Jetzt wird nur die Zeit versucht vom Server zu holen, wenn eine Internetverbindung besteht.

Link siehe erste Posting.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

 
Delphi 2010 Professional
 
#7
  Alt 13. Jan 2003, 09:40
Was ist wenn meine I-Net Verbindung über ein Netzwerk läuft?

Genau dann funktioniert dein Programm nicht mehr, da es dann nicht richtig erkennt ob ein Rechner online ist oder nicht.

Habe die entsprechenden Zeilen auskommentiert. Nun ist mir aufgefallen, dass unter Win2000 zwar einmal die Zeit geholt, aber dann wird der Timer zu oft aufgerufen. Das Programm läuft sich fest ("Keine Rückmeldung ..").
Habe darauf hin den Timerwert erhöht von 1sec auf 10sec. Nun läuft das Programm. Allerdings sollte schon beim Ändern des Servers und beim Start des Programmes die Serverzeit geholt werden und nicht erst wenn der Timer so weit ist. Mit der geänderten Version (10sec) muss ich nach dem Programmstart erst 10sec warten, bevor die Zeit abgefragt wird.

Ansonsten ein ist es ein gutes Tool

MfG Hitzi
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#8
  Alt 13. Jan 2003, 12:17
Zitat von hitzi:
Nun ist mir aufgefallen, dass unter Win2000 zwar einmal die Zeit geholt, aber dann wird der Timer zu oft aufgerufen. Das Programm läuft sich fest ("Keine Rückmeldung ..").
Ich habe auch Windows2000 und keine Probleme in der Hinsicht.
Zitat:
Habe darauf hin den Timerwert erhöht von 1sec auf 10sec. Nun läuft das Programm. Allerdings sollte schon beim Ändern des Servers und beim Start des Programmes die Serverzeit geholt werden und nicht erst wenn der Timer so weit ist. Mit der geänderten Version (10sec) muss ich nach dem Programmstart erst 10sec warten, bevor die Zeit abgefragt wird.
Wenn du den Wert geändert hast, dann ist das klar, aber eine Sekunde sollte man schon mal Zeit haben oder?
Michael
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

 
Delphi 2010 Professional
 
#9
  Alt 13. Jan 2003, 12:28
Einmal holt es auch die Zeit korrekt ab. Aber dann reagiert das Programm nicht mehr und ich kann es nur über Delphi beenden.

Evt. spielt die INet Anbindung und deren Auslastung eine Rolle.
Programm verbindet sich mit Server - bekommt die Zeit - disconnected. Vielleicht ist die Zeitspanne die dieser Vorgang braucht bei einigen länger als eine Sekunde. Evt. ist da dein Problem und nicht bei WinXP (wie oben angesprochen).


MfG Hitzi
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von hitzi
hitzi

 
Delphi 2010 Professional
 
#10
  Alt 13. Jan 2003, 12:45
An der Zeit liegt's doch nicht. Habe probeweise ein Variable working (Boolean) eingefügt. Die war auf True solange die Internettime abgefragt wird und am Ende der Procedure wurde sie wieder auf false gesetzt.
Am Anfang der Function GetINetTime wurde nun diese Variable abgefragt. Bei working=true -> exit. Das half aber auch nichts

Danach hab ich dein Programm nochmal durch den Debugger gejagt

Delphi-Quellcode:
if(s <> INVALID_SOCKET) and (hostent <> nil) then
  begin
    ZeroMemory(@saddr,sizeof(TSockAddr));
    saddr.sin_addr.S_addr := integer(pointer(hostent^.h_addr_list^)^);
    saddr.sin_family := PF_INET;
    saddr.sin_port := htons(37);

    res := connect(s,saddr,sizeof(TSockAddr));
    if(res <> SOCKET_ERROR) then
      res := recv(s,i,sizeof(i),0);
Bei der letzten Codezeile bleibt das Programm hängen. Nie beim ersten Mal!!(?Warum?) Aber auch nicht immer beim zweiten Mal. War unterschiedlich.

Kannst du da nicht eine Art Timeout einfügen (eine Sekunde auf Antwort warten, ansonsten Fehler - nächster Versuch beim nächsten Timer Ereignis)?

MfG Hitzi
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz