TsgcQUICClient

TsgcQUICClient es un cliente QUIC de bajo nivel (RFC 9000) que abre una conexión QUIC a un servidor e intercambia datos a través de streams QUIC.

Introducción

TsgcQUICClient es un cliente QUIC de bajo nivel que implementa el transporte definido en RFC 9000. Abre una conexión QUIC con un servidor e intercambia datos a través de streams QUIC, y está construido sobre la implementación de QUIC proporcionada por OpenSSL 3.5 o posterior, seleccionada por defecto a través de SSLQUICOptions.IOHandler = iohOpenSSL. Con iohNativeTLS se usa en su lugar el motor QUIC propio de sgc con el protocolo de enlace TLS 1.3 sobre el motor TLS nativo, sin necesidad de OpenSSL. Siga los pasos a continuación para configurar este componente:

1. Cree una nueva instancia del componente TsgcQUICClient y establezca el Host y el Port del servidor QUIC.

2. Gestione el evento OnQUICConnect, abra la conexión estableciendo Active en True y envíe datos con WriteData. ejemplo:


    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;

Referencia

Propiedades clave

NombreDescripción
ActiveAbre o cierra la conexión QUIC al servidor remoto.
HostDirección IP o nombre DNS del servidor QUIC al que se conectará el cliente.
PortPuerto UDP utilizado para conectarse al servidor QUIC.
SSLQUICHabilita la capa segura TLS 1.3 que QUIC requiere (habilitada de forma predeterminada).
QUICOptionsOpciones de ajuste del lado del cliente para el transporte QUIC.

Métodos clave

NombreDescripción
ConnectAbre la conexión QUIC al servidor y espera hasta que se establezca o expire el tiempo de espera.
DisconnectCierra la conexión QUIC al servidor.
WriteDataEnvía datos al servidor a través del stream QUIC predeterminado.
OpenStreamAbre un nuevo QUIC stream y lo devuelve para que se puedan enviar datos a través de él.

Eventos clave

NombreDescripción
OnQUICConnectSe activa justo después de que el cliente se conecta correctamente al servidor QUIC.
OnQUICDisconnectSe activa cuando la conexión QUIC se ha cerrado.
OnQUICExceptionSe activa cuando se genera una excepción en la conexión QUIC.

Ejemplo completo


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;

Requisitos