Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TIdTCPServer beenden und alle Clientverbindungen schließen?

  Alt 30. Sep 2014, 16:27
Hallo,

hat der Indy TCPServer nicht einen Exception Handler (onException) mit denen
du die Exceptions abfangen/loggen kannst?

Delphi-Quellcode:
procedure TsimpleL3DC.ServiceCreate(Sender: TObject);
var
  configData : TConfigData;
begin
  fLogger := TLogger.instance;
  configData := TConfigData.create;
  try
    fFileManager := TFileManager.create(includeTrailingPathDelimiter(configData.dataPath));

    fTcpListener := TidTcpServer.Create(nil);
    try
      fTcpListener.OnExecute := onExecute;
      fTcpListener.OnConnect := onConnect;
      fTcpListener.OnDisconnect :=onDisconnect;
      fTcpListener.OnException := onException;
      fTcpListener.DefaultPort := configData.listenerPort;
    except
      on E:Exception do
        fLogger.add(0,'Error while creating listener socket. '+E.Message);
    end;
  finally
    configData.Free;
  end;
end;

procedure TsimpleL3DC.ServiceDestroy(Sender: TObject);
begin
  if assigned(fTcpListener) then
    begin
      fTcpListener.Active := false;
      freeAndNil(fTcpListener);
    end;
  fLogger.Free;
  fFileManager.Free;
end;
Ich trenne die Clients auch einfach damit den Server auf nicht aktiv zu setzen.
Der Service fliegt mir dabei aber nicht um die Ohren.

Grüße
Klaus
Klaus

Geändert von Klaus01 (30. Sep 2014 um 16:29 Uhr)
  Mit Zitat antworten Zitat