Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#5

Re: TCPServer hängt sich nach Exception auf

  Alt 28. Aug 2006, 14:28
@Meflin: Soweit war ich auch schon aber wie du schon gesagt hast - Fehlanzeige!

Allerdings habe ich die Lösung des Problems, jedenfalls ist bisher kein weiterer Fehler aufgetreten! Und zwar habe ich ja eine eigene Prozedur geschrieben, die mir den Server schließt:

Delphi-Quellcode:
// Variable Server ist vom Typ TIdTCPServer
// eventl. muss die Unit "IdContext" zu den uses-Klauseln hinzugefügt werden,
// weil das nicht automatisch gemacht wird
function StopServer: Boolean;
var
  CL : TList;
  i : Integer;
begin
  // auf diesen Teil kam ich durch den Tipp von franktron
  CL := Server.Contexts.LockList;
  try
    for i := 0 to CL.Count - 1 do
      Server.Contexts.Remove(ClientList.Items[0]);
  finally
    CL.Free;
    Server.Contexts.UnlockList;
  end;
  
  // Server schließen
  try
    Server.Active := False; // <-- hier trat bisher immer der Fehler auf
                            // d.h. das Programm stand hier komplett still
  except
    Result := False; end;

  if not Server.Active then
  begin
    Server.Bindings.Clear;
    Result := True;
  end
  else Result := False;
end;
Jetzt wäre es noch klasse, wenn das jemand von euch testen könnte und/oder Äußerungen, Kritik etc. posten könnte!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat