TsgcQUICClient

TsgcQUICClient est un client QUIC bas niveau (RFC 9000) qui ouvre une connexion QUIC vers un serveur et échange des données via des QUIC streams.

Introduction

TsgcQUICClient est un client QUIC de bas niveau qui implémente le transport défini dans RFC 9000. Il ouvre une connexion QUIC vers un serveur et échange des données via des flux QUIC, et repose sur l'implémentation QUIC fournie par OpenSSL 3.5 ou version ultérieure, sélectionnée par défaut via SSLQUICOptions.IOHandler = iohOpenSSL. Avec iohNativeTLS, c'est le moteur QUIC propre à sgc qui est utilisé à la place, avec la poignée de main TLS 1.3 et la protection des paquets sur le moteur TLS natif, sans besoin d'OpenSSL. Suivez les étapes ci-dessous pour configurer ce composant :

1. Créez une nouvelle instance du composant TsgcQUICClient et définissez le Host et le Port du serveur QUIC.

2. Gérez l'événement OnQUICConnect, ouvrez la connexion en définissant Active à True et envoyez des données avec WriteData. exemple :


    oClient := TsgcQUICClient.Create(nil);
    oClient.Host := 'www.example.com';
    oClient.Port := 443;
    oClient.SSLQUIC := True;
    oClient.OnQUICConnect := OnQUICConnectEvent;
    oClient.Active := True;

    oClient.WriteData('Hello QUIC');

    procedure OnQUICConnectEvent(Sender: TObject; const
        Connection: TsgcQUICConnectionClient);
    begin
      ShowMessage('Connected to QUIC server');
    end;

Référence

Propriétés clés

NomDescription
ActiveOuvre ou ferme la connexion QUIC vers le serveur distant.
HostAdresse IP ou nom DNS du serveur QUIC auquel le client se connectera.
PortPort UDP utilisé pour se connecter au serveur QUIC.
SSLQUICActive la couche sécurisée TLS 1.3 requise par QUIC (activée par défaut).
QUICOptionsOptions de configuration côté client pour le transport QUIC.

Méthodes clés

NomDescription
ConnectOuvre la connexion QUIC vers le serveur et attend jusqu'à ce qu'elle soit établie ou que le délai expire.
DisconnectFerme la connexion QUIC vers le serveur.
WriteDataEnvoie des données au serveur via le flux QUIC par défaut.
OpenStreamOuvre un nouveau flux QUIC et le retourne afin que des données puissent y être envoyées.

Événements clés

NomDescription
OnQUICConnectSe déclenche juste après que le client s'est connecté avec succès au serveur QUIC.
OnQUICDisconnectSe déclenche lorsque la connexion QUIC a été fermée.
OnQUICExceptionSe déclenche lorsqu'une exception est levée sur la connexion QUIC.

Exemple complet


oClient := TsgcQUICClient.Create(nil);
oClient.Host := 'www.example.com';
oClient.Port := 443;
oClient.SSLQUIC := True;
oClient.OnQUICConnect := OnQUICConnectEvent;
oClient.OnQUICDisconnect := OnQUICDisconnectEvent;
oClient.OnQUICException := OnQUICExceptionEvent;

if oClient.Connect then
begin
  oClient.WriteData('Hello QUIC');
  oClient.Disconnect;
end;

procedure OnQUICConnectEvent(Sender: TObject; const Connection: TsgcQUICConnectionClient);
begin
  Log('connected');
end;

procedure OnQUICDisconnectEvent(Sender: TObject; const Connection: TsgcQUICConnectionClient; const Code: Integer);
begin
  Log('disconnected, code ' + IntToStr(Code));
end;

procedure OnQUICExceptionEvent(Sender: TObject; E: Exception);
begin
  Log('error: ' + E.Message);
end;

Prérequis