AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Read Timeout bei Delphi 2007 mit Indy 10
Thema durchsuchen
Ansicht
Themen-Optionen

Read Timeout bei Delphi 2007 mit Indy 10

Ein Thema von peterlepan · begonnen am 12. Jun 2007 · letzter Beitrag vom 12. Aug 2008
 
Thomas Horstmann

Registriert seit: 25. Apr 2007
Ort: NRW
87 Beiträge
 
Delphi 12 Athens
 
#2

Re: Read Timeout bei Delphi 2007 mit Indy 10

  Alt 12. Jun 2007, 21:18
Hallo,
ich hatte ein ähnliches Problem mit SSL.
Der Timeout Fehler wurde ausgelöst, auch wenn keine Zeit eingetragen wurde (-1).
Daraufhin habe ich folgendes in Indy angepasst (siehe Code):

Datei : ...Indy_10\Protocols\IdSSLOpenSSL.pas
Function : TIdSSLIOHandlerSocketOpenSSL.ReadFromSource
Zeile : 1394

In den Suchpfad sollten die Indy Verzeichnisse eingebaut werden z.B.:

C:\Programme\Borland\BDS\4.0\source\Indy10\Core
C:\Programme\Borland\BDS\4.0\source\Indy10\Protoco ls

Seitdem klappt es. Hoffe es hilft.

Viele Grüsse
Thomas


Delphi-Quellcode:
...
function TIdSSLIOHandlerSocketOpenSSL.ReadFromSource(
 ARaiseExceptionIfDisconnected: Boolean; ATimeout: Integer;
 ARaiseExceptionOnTimeout: Boolean): Integer;
// Reads any data in tcp/ip buffer and puts it into Indy buffer
// This must be the ONLY raw read from Winsock routine
// This must be the ONLY call to RECV - all data goes thru this method
var
  LByteCount: Integer;
  LBuffer: TIdBytes;
  LLastError: Integer;
begin
  if ATimeout = IdTimeoutDefault then begin
    if ReadTimeOut = 0 then begin
      ATimeout := IdTimeoutInfinite;
    end else begin
      ATimeout := FReadTimeout;
    end;
  end;
  Result := 0;
  // Check here as this side may have closed the socket
  CheckForDisconnect(ARaiseExceptionIfDisconnected);
  if BindingAllocated then begin
    LByteCount := 0;
    repeat
      // *****************************************************************
      // *** Anpassung, Eingefügt ***
      // *** Timeout wird auch bei ATimeOut = -1 ausgelöst. ***
      // *****************************************************************
      if Readable(ATimeout) or (ATimeOut = -1) then begin

      // *****************************************************************
      // *** Anpassung, Deaktiviert (Original) ***
      // *****************************************************************
      // if Readable(ATimeout) then begin

      // *****************************************************************
      // *** Anpassung, Ende ***
      // *****************************************************************

        if Assigned(FRecvBuffer) then begin
          // No need to call AntiFreeze, the Readable does that.
          if BindingAllocated then begin
            SetLength(LBuffer,RecvBufferSize);
            try
              LByteCount := Recv(LBuffer);
              SetLength(LBuffer,LByteCount);
                if Intercept <> nil then begin
                  Intercept.Receive(LBuffer);
                  LByteCount := Length(LBuffer);
                end;
              FRecvBuffer.Write(LBuffer);
          // WriteBuffer(LBuffer^,LByteCount);
            finally
              SetLength(LBuffer,0);
            end;
          end else begin
            raise EIdClosedSocket.Create(RSStatusDisconnected);
          end;
        end else begin
          LByteCount := 0;
          if ARaiseExceptionIfDisconnected then
            raise EIdException.Create(RSNotConnected);
        end;
        FClosedGracefully := LByteCount = 0;
  Mit Zitat antworten Zitat
 


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 02:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz