Метод bind
Future<RawSecureServerSocket> bind(Возвращает будущее для RawSecureServerSocket. Когда будущее завершается, сокет сервера привязывается к заданному 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 getter.
Необязательный аргумент backlog может быть использован для указания очереди прослушивания для настройки прослушивания ОС. Если backlog имеет значение 0 (по умолчанию), система выберет разумное значение.
Входящие подключения клиентов преобразуются в защищённые подключения, используя сертификат и ключ сервера, установленные в context.
address должен быть задан как числовой адрес, а не имя хоста.
Чтобы запросить или потребовать, чтобы клиенты аутентифицировались, предоставив SSL (TLS) сертификат клиента, установите необязательные параметры requestClientCertificate или requireClientCertificate в значение true. Требование подразумевает запрос, поэтому не нужно указывать оба. Чтобы проверить, был ли получен сертификат клиента, проверьте SecureSocket.peerCertificate после подключения. Если сертификат не был получен, результат будет null.
supportedProtocols — это необязательный список протоколов (в порядке убывания приоритета) для использования во время согласования протокола ALPN с клиентами. Примерные значения: "http/1.1" или "h2". Выбранный протокол можно получить через RawSecureSocket.selectedProtocol.
Необязательный аргумент shared указывает, могут ли дополнительные объекты RawSecureServerSocket привязываться к той же комбинации address, port и v6Only. Если shared имеет значение true, и несколько RawSecureServerSocket из этого изолированного или других изолированных процессов привязаны к порту, то входящие подключения будут распределены между всеми привязанными RawSecureServerSocket. Подключения могут быть распределены по нескольким изолированным процессам таким образом.
Исходный код
static Future<RawSecureServerSocket> 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 RawServerSocket
.bind(address, port, backlog: backlog, v6Only: v6Only, shared: shared)
.then((serverSocket) => new RawSecureServerSocket._(
serverSocket,
context,
requestClientCertificate,
requireClientCertificate,
supportedProtocols));
}
© 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/RawSecureServerSocket/bind.html