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 通配地址 ::,因此单个监听器可在该端口上同时接受 IPv6 和 IPv4 对端。在没有 IPv6 协议栈的机器上,会回退到 IPv4 通配地址 0.0.0.0。这对两种 QUIC 引擎都适用,即 OpenSSL 内置引擎和 sgc 引擎(参阅 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 是公有的,但未被 TsgcQUICServer 发布,因此需要通过代码赋值。

示例


oServer := TsgcQUICServer.Create(nil);
// restricts the listener to this interface, leave empty to bind every interface
oServer.Host := '192.168.1.10';
oServer.Port := 4433;
oServer.QUICOptions.SSLOptions.CertFile := 'cert.pem';
oServer.QUICOptions.SSLOptions.KeyFile := 'key.pem';
oServer.Start;

返回属性