Thema: INetTime

Einzelnen Beitrag anzeigen

Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
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