TsgcQUICServer › プロパティ › Host

Host プロパティ

リスナーのバインドアドレス。IPv4 アドレス、IPv6 アドレス、またはホスト名を指定でき、空のままにするとすべてのインターフェースにバインドされます。

構文

property Host: String read FHost write FHost;

デフォルト値

'' (Delphi)、"0.0.0.0" (.NET)

解説

Host は UDP サーバーの基底クラスから継承され、リスナーがバインドするローカルインターフェースを選択します。

Delphi のリスナーは設定したアドレスにバインドします。 Start がリスナーを作成する際に Host を解決し、その UDP ソケットをそのアドレスにバインドするため、サーバーはそのインターフェースでのみ QUIC 接続を受け付けます。Host を空にすると、デュアルスタックの IPv6 ワイルドカード :: にバインドされ、1 つのリスナーで IPv6 と IPv4 の両方のピアをそのポート上で受け付けます。IPv6 スタックのないマシンでは、IPv4 ワイルドカードの 0.0.0.0 にフォールバックします。これは、OpenSSL 組み込みエンジンと sgc エンジンの両方の QUIC エンジンに当てはまります(QUICMode を参照)。Host を解決できない場合、Start は QUIC Server: Failed to resolve bind address "<host>" を発生させるため、通常どおり呼び出しを try..except で囲んでください。

アドレスファミリーは設定した値に従います。コロンを含む Host は IPv6 リテラルとして扱われ、裸の形式 ::1 でも URL 内で使われる角括弧形式 [::1] でも構いません。それ以外の値、つまり IPv4 リテラルまたはホスト名は、両方のファミリーで解決されるため、AAAA レコードのみを公開する名前もバインドされます。名前が複数のアドレスに解決される場合、オペレーティングシステムが返す順序で各候補が試され、いずれかがバインドに成功するまで続きます。

.NET 実装でも Host は同じように扱われます。リスナーのエンドポイントに解析され、空の値または 0.0.0.0 はすべての IPv4 インターフェースを、:: はすべての IPv6 インターフェースを意味し、それ以外の値は IP アドレスとして解析されます(解析できない値はすべての IPv4 インターフェースにフォールバックします)。

Host は public ですが TsgcQUICServer では published ではないため、コードから設定します。

使用例


oServer := TsgcQUICServer.Create(nil);
// リスナーをこのインターフェースに制限します。すべてのインターフェースにバインドするには空のままにします
oServer.Host := '192.168.1.10';
oServer.Port := 4433;
oServer.QUICOptions.SSLOptions.CertFile := 'cert.pem';
oServer.QUICOptions.SSLOptions.KeyFile := 'key.pem';
oServer.Start;

プロパティに戻る