QUIC クライアント
TsgcQUICClient — 生の QUIC トランスポートクライアント(RFC 9000)です。単一の TLS 1.3 ハンドシェイクでコネクションを開き、1 つまたは複数のストリームでバイト列を送受信します。0-RTT 再開とコネクションマイグレーションに対応し、Delphi、C++ Builder、.NET で利用できます。
TsgcQUICClient — 生の QUIC トランスポートクライアント(RFC 9000)です。単一の TLS 1.3 ハンドシェイクでコネクションを開き、1 つまたは複数のストリームでバイト列を送受信します。0-RTT 再開とコネクションマイグレーションに対応し、Delphi、C++ Builder、.NET で利用できます。
HTTP セマンティクスを伴わない QUIC です。Host、Port、イベントハンドラーを設定し、コンポーネントをアクティブにしてから、ストリームにバイト列を書き込みます。OpenSSL 3.5 のネイティブ QUIC エンジン上に構築されています。
TsgcQUICClient
UDP 上の QUIC(RFC 9000)、TLS 1.3
Delphi, C++ Builder, .NET
Host と Port を設定し、QUIC イベントをフックし、Active を設定してから、WriteData でバイト列を送信します。1 つのコネクションで複数のストリームを使うには EnableMultiStream と OpenStream を呼び出します。
uses
sgcQUIC_Client;
var
oClient: TsgcQUICClient;
begin
oClient := TsgcQUICClient.Create(nil);
oClient.Host := 'www.example.com';
oClient.Port := 443;
oClient.OnQUICConnect := OnQUICConnectHandler;
oClient.OnQUICStreamData := OnStreamDataHandler;
oClient.OnQUICDisconnect := OnQUICDisconnectHandler;
oClient.Active := True; // one-flight TLS 1.3 handshake
oClient.WriteData('ping'); // send bytes on a QUIC stream
end;
// Several independent streams on one connection (builtin engine):
oClient.EnableMultiStream;
oClient.OpenStream;
// includes: sgcQUIC_Client.hpp
TsgcQUICClient *oClient = new TsgcQUICClient(NULL);
oClient->Host = "www.example.com";
oClient->Port = 443;
oClient->OnQUICConnect = OnQUICConnectHandler;
oClient->OnQUICStreamData = OnStreamDataHandler;
oClient->OnQUICDisconnect = OnQUICDisconnectHandler;
oClient->Active = true; // one-flight TLS 1.3 handshake
oClient->WriteData("ping"); // send bytes on a QUIC stream
// Several independent streams on one connection (builtin engine):
oClient->EnableMultiStream();
oClient->OpenStream();
using esegece.sgcWebSockets;
var oClient = new TsgcQUICClient();
oClient.Host = "www.example.com";
oClient.Port = 443;
oClient.OnQUICConnect += OnQUICConnectHandler;
oClient.OnQUICStreamData += OnStreamDataHandler;
oClient.OnQUICDisconnect += OnQUICDisconnectHandler;
oClient.Active = true; // one-flight TLS 1.3 handshake
oClient.WriteData("ping"); // send bytes on a QUIC stream
// Several independent streams on one connection (builtin engine):
oClient.EnableMultiStream();
oClient.OpenStream();
最もよく使うメンバー。
Host、Port、Active が QUIC コネクションを開閉します。Connect / Disconnect と Start / Stop で明示的に操作することもできます。
QUICOptions は ALPN、タイムアウト、0-RTT を設定します。SSLQUICOptions は TLS 1.3 レイヤーを調整します。
EnableMultiStream と OpenStream(aUnidirectional) により、1 つのコネクション上に複数の独立した QUIC ストリームを配置できます(builtin エンジン)。
WriteData は、string または TBytes のペイロードをストリームに書き込みます。
OnQUICConnect、OnQUICStreamData、OnQUICDisconnect、OnQUICException が、コネクションのライフサイクルと受信データを扱います。
0-RTT 再開とコネクションマイグレーションにより、セッションは 1 回の往復や、ネットワークの切り替えをまたいでも維持されます。