TsgcQUICServer › Propriétés › Host

Host Propriété

Adresse de liaison du listener. Accepte une adresse IPv4, une adresse IPv6 ou un nom d'hôte, et se lie à toutes les interfaces lorsqu'elle est laissée vide.

Syntaxe

property Host: String read FHost write FHost;

Valeur par défaut

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

Remarques

Host est hérité de la classe de base du serveur UDP et sélectionne l'interface locale sur laquelle le listener se lie.

Le listener Delphi se lie à l'adresse que vous définissez. Lorsque Start crée le listener, il résout Host et lie le socket UDP à cette adresse, de sorte que le serveur n'accepte les connexions QUIC que sur cette interface. Un Host vide se lie au joker dual-stack IPv6 ::, de sorte qu'un seul listener accepte à la fois les pairs IPv6 et IPv4 sur le port. Sur une machine sans pile IPv6, il se replie sur 0.0.0.0, le joker IPv4. Cela s'applique aux deux moteurs QUIC, le moteur intégré d'OpenSSL et le moteur sgc (voir QUICMode). Si Host ne peut pas être résolu, Start lève QUIC Server: Failed to resolve bind address "<host>", encadrez donc l'appel dans un try..except comme d'habitude.

La famille d'adresses suit la valeur définie. Un Host contenant un deux-points est traité comme un littéral IPv6, sous la forme simple ::1 ou sous la forme entre crochets [::1] utilisée dans les URL. Toute autre valeur, un littéral IPv4 ou un nom d'hôte, est résolue sur les deux familles, de sorte qu'un nom qui ne publie que des enregistrements AAAA se lie également. Lorsqu'un nom est résolu en plusieurs adresses, chaque candidate est essayée dans l'ordre renvoyé par le système d'exploitation jusqu'à ce que l'une d'elles se lie.

Dans l'implémentation .NET, Host est respecté de la même façon : il est analysé dans le point de terminaison du listener, où une valeur vide ou 0.0.0.0 signifie toutes les interfaces IPv4, :: signifie toutes les interfaces IPv6, et toute autre valeur est interprétée comme une adresse IP (une valeur non interprétable se replie sur toutes les interfaces IPv4).

Host est public mais non publié par TsgcQUICServer, il s'assigne donc depuis le code.

Exemple


oServer := TsgcQUICServer.Create(nil);
// limite le listener à cette interface, laissez vide pour lier toutes les interfaces
oServer.Host := '192.168.1.10';
oServer.Port := 4433;
oServer.QUICOptions.SSLOptions.CertFile := 'cert.pem';
oServer.QUICOptions.SSLOptions.KeyFile := 'key.pem';
oServer.Start;

Retour aux propriétés