Метод bind
Future<SecureServerSocket> bind(Возвращает будущее для 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