TsgcQUICServer › Proprietà › Host

Host Property

Indirizzo di associazione per il listener. Accetta un indirizzo IPv4, un indirizzo IPv6 o un nome host, e si associa a tutte le interfacce quando viene lasciato vuoto.

Sintassi

property Host: String read FHost write FHost;

Valore predefinito

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

Note

Host è ereditata dalla classe base del server UDP e seleziona l'interfaccia locale a cui si associa il listener.

Il listener Delphi si associa all'indirizzo impostato. Quando Start crea il listener, risolve Host e associa il socket UDP a quell'indirizzo, quindi il server accetta connessioni QUIC solo su quell'interfaccia. Un Host vuoto si associa al wildcard IPv6 dual-stack ::, quindi un singolo listener accetta sia i peer IPv6 sia quelli IPv4 sulla porta. Su una macchina priva di stack IPv6 ricade su 0.0.0.0, il wildcard IPv4. Questo vale per entrambi i motori QUIC, il motore integrato OpenSSL e il motore sgc (vedere QUICMode). Se Host non può essere risolto, Start genera QUIC Server: Failed to resolve bind address "<host>", quindi racchiudere la chiamata in un try..except come di consueto.

La famiglia di indirizzi segue il valore impostato. Un Host che contiene un due punti viene trattato come letterale IPv6, nella forma semplice ::1 o in quella tra parentesi [::1] usata negli URL. Qualsiasi altro valore, un letterale IPv4 o un nome host, viene risolto su entrambe le famiglie, quindi anche un nome che pubblica solo record AAAA si associa. Quando un nome si risolve in più indirizzi, ogni candidato viene provato nell'ordine restituito dal sistema operativo finché uno di essi non si associa.

Nell'implementazione .NET Host viene rispettata allo stesso modo: viene analizzata nell'endpoint del listener, dove un valore vuoto o 0.0.0.0 indica tutte le interfacce IPv4, :: indica tutte le interfacce IPv6, e qualsiasi altro valore viene analizzato come indirizzo IP (un valore non analizzabile ricade su tutte le interfacce IPv4).

Host è pubblica ma non è published in TsgcQUICServer, quindi viene assegnata da codice.

Esempio


oServer := TsgcQUICServer.Create(nil);
// limita il listener a questa interfaccia, lasciare vuoto per associare tutte le interfacce
oServer.Host := '192.168.1.10';
oServer.Port := 4433;
oServer.QUICOptions.SSLOptions.CertFile := 'cert.pem';
oServer.QUICOptions.SSLOptions.KeyFile := 'key.pem';
oServer.Start;

Torna alle Proprietà