Spec-Zone.ru › Dart 1

dart:io

Метод bind

Future<SecureServerSocket> bind(address, int port, SecurityContext context, { int backlog: 0, bool v6Only: false, bool requestClientCertificate: false, bool requireClientCertificate: false, List<String> supportedProtocols, bool shared: false })

Возвращает будущее для SecureServerSocket. Когда будущее завершается, сокет сервера привязывается к заданному address и port и начал прослушивание на нем.

address может быть либо строкой, либо InternetAddress. Если address является строкой, bind выполнит InternetAddress.lookup и использует первое значение в списке. Чтобы прослушивать на адаптере обратной связи, который позволит только входящим подключениям с локального хоста, используйте значение InternetAddress.LOOPBACK_IP_V4 или InternetAddress.LOOPBACK_IP_V6. Чтобы разрешить входящие подключения из сети, используйте одно из значений InternetAddress.ANY_IP_V4 или InternetAddress.ANY_IP_V6, чтобы привязаться ко всем интерфейсам или IP-адресу конкретного интерфейса.

Если port имеет значение 0, система выберет временный порт. Фактический используемый порт можно получить с помощью port.

Необязательный аргумент backlog может быть использован для указания очереди прослушивания для настройки прослушивания подлежащей операционной системы. Если backlog имеет значение 0 (по умолчанию), система выберет разумное значение.

Входящие клиентские подключения преобразуются в защищенные подключения с использованием сертификата сервера и ключа, заданного в context.

address должно быть задано как числовой адрес, а не имя хоста.

Чтобы запросить или потребовать, чтобы клиенты аутентифицировались, предоставив сертификат клиента SSL (TLS), установите необязательный параметр requestClientCertificate или requireClientCertificate в true. Требование сертификата подразумевает запрос сертификата, поэтому установка обоих является избыточным. Чтобы проверить, был ли получен сертификат клиента, проверьте SecureSocket.peerCertificate после подключения. Если сертификат не был получен, результат будет null.

supportedProtocols — это необязательный список протоколов (в порядке убывания предпочтения), которые необходимо использовать во время переговоров по протоколу ALPN с клиентами. Примерные значения — "http/1.1" или "h2". Выбранный протокол можно получить через SecureSocket.selectedProtocol.

Необязательный аргумент shared указывает, могут ли дополнительные объекты SecureServerSocket привязаться к той же комбинации address, port и v6Only. Если shared имеет значение true и больше SecureServerSocket из этого изолята или других изолятов привязаны к порту, то входящие подключения будут распределены между всеми привязанными SecureServerSocket. Подключения могут быть распределены таким образом по нескольким изолятам.

Исходный код

static Future<SecureServerSocket> bind(
    address, int port, SecurityContext context,
    {int backlog: 0,
    bool v6Only: false,
    bool requestClientCertificate: false,
    bool requireClientCertificate: false,
    List<String> supportedProtocols,
    bool shared: false}) {
  return RawSecureServerSocket
      .bind(address, port, context,
          backlog: backlog,
          v6Only: v6Only,
          requestClientCertificate: requestClientCertificate,
          requireClientCertificate: requireClientCertificate,
          supportedProtocols: supportedProtocols,
          shared: shared)
      .then((serverSocket) => new SecureServerSocket._(serverSocket));
}

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-io/SecureServerSocket/bind.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API