Thema: Delphi TIdPeerThread in Indy 10

Einzelnen Beitrag anzeigen

Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: TIdPeerThread in Indy 10

  Alt 26. Jul 2010, 13:16
Hallo zusammen,

TIdPeerThread muss durch TIdContext ersetzt werden; uses um IdContext erweitern .

Außerdem muss im SourceCode wie folgt vorgegangen werden damit es dann auch wieder unter Indy10 klappt:
Delphi-Quellcode:
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
Var sClientMsg : String;
    FileReceiver : TFileReceiver; //diese Definietion kommt von der Filereceiver Unit
begin
  try
    // Clientnachricht lesen
    sClientMsg := AContext.Connection.Socket.ReadLn(#$A,5500);
    FileReceiver := TFileReceiver.Create(AContext,sClientMsg);
    try
       // gültige Nachricht vom Client ?
       if FileReceiver.ServerMsgOK then begin
          // Datei jetzt empfangen
          if FileReceiver.Start then
             // Bestätigung zum Clientschreiben
             AContext.Connection.Socket.WriteLn('FILEOK')
          else
             // Error-Nachricht schreiben
             AContext.Connection.Socket.WriteLn('FILEERROR');
       end;
    finally
       FileReceiver.free;
    end;
  except
   AContext.Connection.Disconnect;
  end;
end;
Also im Prinzip jede Deklaration von TIdPeerThread durch TIdContext austauschen.
Überall wo geschriebe/gelesen wird AThread.Connection mit AContext.Connection.Socket ersetzen und
dort wo eine Verbindung geschlossen werden soll AThread.Connection.Disconnect mit AContext.Connection.Disconect ersetzen.

Das war jetzt die Variante/Umsetzung für den Indy TCP-Server mit Indy10,
Umsetzung/Portierung des Clients sollte sich daraus ableiten lassen.

Mfg DataCool
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat