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.
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;
| Nom | Description |
|---|---|
| Active | Ouvre ou ferme la connexion QUIC vers le serveur distant. |
| Host | Adresse IP ou nom DNS du serveur QUIC auquel le client se connectera. |
| Port | Port UDP utilisé pour se connecter au serveur QUIC. |
| SSLQUIC | Active la couche sécurisée TLS 1.3 requise par QUIC (activée par défaut). |
| QUICOptions | Options de configuration côté client pour le transport QUIC. |
| Nom | Description |
|---|---|
| Connect | Ouvre la connexion QUIC vers le serveur et attend jusqu'à ce qu'elle soit établie ou que le délai expire. |
| Disconnect | Ferme la connexion QUIC vers le serveur. |
| WriteData | Envoie des données au serveur via le flux QUIC par défaut. |
| OpenStream | Ouvre un nouveau flux QUIC et le retourne afin que des données puissent y être envoyées. |
| Nom | Description |
|---|---|
| OnQUICConnect | Se déclenche juste après que le client s'est connecté avec succès au serveur QUIC. |
| OnQUICDisconnect | Se déclenche lorsque la connexion QUIC a été fermée. |
| OnQUICException | Se déclenche lorsqu'une exception est levée sur la connexion QUIC. |
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;