Du solltest das trotzdem umbauen. Ein Server, der dauernd pollt, ist nicht so toll.
Vorschlag: Verwende doch ein ReadInteger, den der Server standardmäßig aufruft. Sowohl bei Verbindungsabbrüchen als auch bei normalen Beendigungen des Clients wirst du eine
Indy-
Exception erhalten. Hier der Code:
Delphi-Quellcode:
procedure TForm67.TCPServerExecute(AContext: TIdContext);
var Stream:TMemoryStream;
var Command:Integer;
begin
try
Command:=AContext.Connection.IOHandler.ReadInteger();
except
HandleClientLost; //<- Routine, die bei IdExceptions dann getriggert wird
raise;
end;
//Hier Code für die Interpretierung des Commands hinterlegen
if Command=0 then
...
end;
Gleichzeitig kannst du das ReadInteger nutzen, um eben bestimmte Anforderungen entgegen zu nehmen (die
TCP-Verbindung wird ja normalerweise für Kommunikation genutzt).
Bis dann,
Andreas