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으로 대체됩니다. 이는 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);
// 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;

속성으로 돌아가기