TsgcQUICServer › Eigenschaften › Active
Meldet und steuert den QUIC-Listener. Das Setzen entspricht dem Aufruf von Start oder Stop.
property Active: Boolean read GetActive write SetActive;
False
Active wird von der UDP-Server-Basisklasse geerbt, und TsgcQUICServer überschreibt sowohl den Getter als auch den Setter, sodass die Eigenschaft den OpenSSL-QUIC-Listener meldet und steuert statt des geerbten Indy-UDP-Servers, den diese Komponente nie verwendet. Sie ist nicht veröffentlicht und erscheint daher nicht im Objektinspektor, sie ist jedoch public und kann aus dem Code verwendet werden:
True zurück, sobald der QUIC-Listener gebunden ist, sie ist also True nach einem erfolgreichen Start und False nach Stop oder einem fehlgeschlagenen Start. Während die Komponente entworfen oder geladen wird, meldet sie stattdessen den gestreamten Wert.Active := True führt denselben Start durch wie Start, einschließlich des Auslösens einer Ausnahme bei fehlerhafter Konfiguration, und Active := False führt denselben Abbau durch wie Stop.Start ist als Active := True implementiert und Stop als Active := False, sodass die beiden Einstiegspunkte austauschbar und stets miteinander konsistent sind. Beide sind idempotent: Das Starten eines bereits gestarteten Servers oder das Stoppen eines bereits gestoppten Servers bewirkt nichts.
Dieses Member ist nur in der Delphi/C++Builder-Implementierung verfügbar. Die .NET-Implementierung verfolgt den Zustand des Listeners intern und stellt keine Eigenschaft Active bereit, verwenden Sie daher in sprachübergreifendem Code Start() und Stop().
oServer := TsgcQUICServer.Create(nil);
oServer.Port := 4433;
oServer.QUICOptions.SSLOptions.CertFile := 'cert.pem';
oServer.QUICOptions.SSLOptions.KeyFile := 'key.pem';
try
oServer.Start; // same as oServer.Active := True
except
on E: Exception do
Log('start failed: ' + E.Message);
end;
// Active reports the real QUIC listener state
if oServer.Active then
Log('QUIC server listening on UDP port ' + IntToStr(oServer.Port));
// stopping through the property, same as oServer.Stop
oServer.Active := False;