TsgcQUICClient jest niskopoziomowym klientem QUIC (RFC 9000), który otwiera połączenie QUIC z serwerem i wymienia dane przez strumienie QUIC.
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;
| Nazwa | Opis |
|---|---|
| Active | Otwiera lub zamyka połączenie QUIC z serwerem zdalnym. |
| Host | Adres IP lub nazwa DNS serwera QUIC, z którym klient się połączy. |
| Port | Port UDP używany do połączenia z serwerem QUIC. |
| SSLQUIC | Włącza warstwę bezpieczeństwa TLS 1.3 wymaganą przez QUIC (domyślnie włączona). |
| QUICOptions | Opcje konfiguracyjne po stronie klienta dla transportu QUIC. |
| Nazwa | Opis |
|---|---|
| Connect | Otwiera połączenie QUIC z serwerem i czeka, aż zostanie nawiązane lub upłynie limit czasu. |
| Disconnect | Zamyka połączenie QUIC z serwerem. |
| WriteData | Wysyła dane do serwera przez domyślny strumień QUIC. |
| OpenStream | Otwiera nowy strumień QUIC i zwraca go, umożliwiając wysyłanie danych przez ten strumień. |
| Nazwa | Opis |
|---|---|
| OnQUICConnect | Wywoływane zaraz po pomyślnym połączeniu klienta z serwerem QUIC. |
| OnQUICDisconnect | Uruchamiane po zamknięciu połączenia QUIC. |
| OnQUICException | Uruchamiane, gdy w połączeniu QUIC zostanie zgłoszony wyjątek. |
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;