TsgcQUICClient

TsgcQUICClient jest niskopoziomowym klientem QUIC (RFC 9000), który otwiera połączenie QUIC z serwerem i wymienia dane przez strumienie QUIC.

Wprowadzenie

TsgcQUICClient to niskopoziomowy klient QUIC implementujący transport zdefiniowany w RFC 9000. Otwiera połączenie QUIC z serwerem i wymienia dane przez strumienie QUIC, a jego podstawą jest implementacja QUIC dostarczona przez OpenSSL 3.5 lub nowszy, wybierana domyślnie przez SSLQUICOptions.IOHandler = iohOpenSSL. Z iohNativeTLS używany jest zamiast tego własny silnik QUIC sgc z uzgadnianiem TLS 1.3 na natywnym silniku TLS, bez potrzeby OpenSSL. Wykonaj poniższe kroki, aby skonfigurować ten komponent:

1. Utwórz nową instancję komponentu TsgcQUICClient i ustaw Host oraz Port serwera QUIC.

2. Obsłuż zdarzenie OnQUICConnect, otwórz połączenie, ustawiając Active na True, i wyślij dane za pomocą WriteData. Przykład:


    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;

Dokumentacja

Kluczowe właściwości

NazwaOpis
ActiveOtwiera lub zamyka połączenie QUIC z serwerem zdalnym.
HostAdres IP lub nazwa DNS serwera QUIC, z którym klient się połączy.
PortPort UDP używany do połączenia z serwerem QUIC.
SSLQUICWłącza warstwę bezpieczeństwa TLS 1.3 wymaganą przez QUIC (domyślnie włączona).
QUICOptionsOpcje konfiguracyjne po stronie klienta dla transportu QUIC.

Kluczowe metody

NazwaOpis
ConnectOtwiera połączenie QUIC z serwerem i czeka, aż zostanie nawiązane lub upłynie limit czasu.
DisconnectZamyka połączenie QUIC z serwerem.
WriteDataWysyła dane do serwera przez domyślny strumień QUIC.
OpenStreamOtwiera nowy strumień QUIC i zwraca go, umożliwiając wysyłanie danych przez ten strumień.

Kluczowe zdarzenia

NazwaOpis
OnQUICConnectWywoływane zaraz po pomyślnym połączeniu klienta z serwerem QUIC.
OnQUICDisconnectUruchamiane po zamknięciu połączenia QUIC.
OnQUICExceptionUruchamiane, gdy w połączeniu QUIC zostanie zgłoszony wyjątek.

Kompletny przykład


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;

Wymagania