Einzelnen Beitrag anzeigen

bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#1

TCP Indy, auf Server Antwort warten ....

  Alt 8. Mär 2020, 17:42
anbei eine Codesequenz zum Senden eines Commands an einen TCP Server und das Zurücklesen
der Antwort des Servers in eine Datei

bei IdTCPClient1 ist der Timeout auf -1 gesetzt, damit müsste die Kommunikation zwischen Client und Server doch eigentlich auch dann noch klappen,
wenn der Server mal längern zum Berechnen der Antwortdatei benötigt????


Delphi-Quellcode:


  logfile: String;
  AStream: TFileStream;



  IdTCPClient1.IOHandler.WriteLn(MyCMDString);

  ///
  /// save the transmited command to the string list
  ///

 

  // https://stackoverflow.com/questions/7989133/how-can-i-wait-for-a-string-from-a-server-with-idtcpclient
  // if IdTCPClient1.IOHandler.InputBufferIsEmpty then ShowLogInfo('TCP/IP Transfer failed , InputBufferIsEmpty ' );

  AStream := TFileStream.Create(logfile, fmCreate);
  try
    IdTCPClient1.IOHandler.LargeStream := True;
    IdTCPClient1.IOHandler.ReadStream(AStream, -1, False);
  finally
    AStream.Free;

Wenn ich in meiner App die Strings manuell aus einer Listbox auswähle und über diese Funktion an den Server schicke funktioniert alles auch,
Code also OK.
Wenn ich in der App eine Batch Routine aufrufe, welche viele Strings dann diese Funktion schickt klappt es nicht mehr, woran liegt dies ?
  Mit Zitat antworten Zitat