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.
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;
| Nombre | Descripción |
|---|---|
| Active | Abre o cierra la conexión QUIC al servidor remoto. |
| Host | Dirección IP o nombre DNS del servidor QUIC al que se conectará el cliente. |
| Port | Puerto UDP utilizado para conectarse al servidor QUIC. |
| SSLQUIC | Habilita la capa segura TLS 1.3 que QUIC requiere (habilitada de forma predeterminada). |
| QUICOptions | Opciones de ajuste del lado del cliente para el transporte QUIC. |
| Nombre | Descripción |
|---|---|
| Connect | Abre la conexión QUIC al servidor y espera hasta que se establezca o expire el tiempo de espera. |
| Disconnect | Cierra la conexión QUIC al servidor. |
| WriteData | Envía datos al servidor a través del stream QUIC predeterminado. |
| OpenStream | Abre un nuevo QUIC stream y lo devuelve para que se puedan enviar datos a través de él. |
| Nombre | Descripción |
|---|---|
| OnQUICConnect | Se activa justo después de que el cliente se conecta correctamente al servidor QUIC. |
| OnQUICDisconnect | Se activa cuando la conexión QUIC se ha cerrado. |
| OnQUICException | Se activa cuando se genera una excepción en la conexión 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;