Einzelnen Beitrag anzeigen

Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#1

TIdTCPServer friert bei OnDisconnect ein

  Alt 4. Feb 2010, 16:48
Ich hab hier eine Anwendung mit einem TIdTCPServer.
Im OnDisconnect würd ich gern nur eine Log-Meldung rausschreiben.
Wird die Verbindung allerdings vom Server und nicht vom Client getrennt (z.B. indem man Server.Active auf false setzt), dann friert die Anwendung sobald man im OnDisconnect was machen will

HILFE!

Ich hab hier mal ein extrem primitives Beispiel gebastelt:

Delphi-Quellcode:
procedure TForm1.butOnClick(Sender: TObject);
begin
     IdTCPServer1.Active:=True;
     Memo1.Lines.Add('Server listening on port '+IntToStr(IdTCPServer1.DefaultPort))
end;
procedure TForm1.butOffClick(Sender: TObject);
begin
     IdTCPServer1.Active:=False;
     Memo1.Lines.Add('Server disconnected.')
end;
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var s: string;
begin
     s:=AContext.Connection.IOHandler.ReadLn;
     Memo1.Lines.add('R< '+s);
     AContext.Connection.IOHandler.WriteLn('Echo: '+s); // Auto-Echo
end;
procedure TForm1.IdTCPServer1Disconnect(AContext: TIdContext);
begin
   // Wenn man die Zeile einkommentiert friert die Anwendung sobald man auf "Off" clickt
   // Memo1.Lines.add('Client disconnected');
end;
  Mit Zitat antworten Zitat