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.