Thema: Delphi TIdPeerThread in Indy 10

Einzelnen Beitrag anzeigen

Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#1

TIdPeerThread in Indy 10

  Alt 28. Aug 2008, 13:34
hi

ich versuche gerade das OS Projekt von DataCool in Indy 10 umschreiben, ich habe aber ein Problem beim empfangen.
Delphi-Quellcode:
procedure TfrmMainServer.TcpServerExecute(AThread: TIdPeerThread); //<-- in Indy 10 steht (AContext: TIdContext)
Var sClientMsg : String;
    FileReceiver : TFileReceiver; //diese Definietion kommt von der Filereceiver Unit
begin
   try
      // Clientnachricht lesen
      sClientMsg := AThread.Connection.ReadLn(#$A,5500);
      FileReceiver := TFileReceiver.Create(AThread,sClientMsg);
      try
         // gültige Nachricht vom Client ?
         if FileReceiver.ServerMsgOK then begin
            // Datei jetzt empfangen
            if FileReceiver.Start then
               // Bestätigung zum Clientschreiben
               AThread.Connection.WriteLn('FILEOK')
            else
               // Error-Nachricht schreiben
               AThread.Connection.WriteLn('FILEERROR');
         end;
      finally
         FileReceiver.free;
      end;
   except
      AThread.Connection.Disconnect;
   end;
end;
mein Problem ist es, dass es in indy 10 keinen IdPeerthread mehr gibt, sondern idContext.

in der Filereceiver unit wird der idPeerthread jedoch benötigt

Delphi-Quellcode:
type

   TFileReceiver = Class
      private
         ..
         fLabRe : TLabel;
         // Indy-Server-Thread
         AThread : TIdPeerThread; // <-- hier
         // wichtige Elemente zum Empfangen der Datei
         iFileSize : Cardinal;
         ...
      protected
         //
      public
         ..
   end;
nur wenn ich statt AThread: TIdPeerThread, AContext: TIdContext hineinschreibe bringt das nicht wirklich zum Erfolg.

wie kann ich das Umschreiben oder kennt jemand eine bessere Lösung mit dem selben Ergebnis?

Bitte fragen, falls etwas unverständlich ist
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat