Метод bind
Прослушивает указанный адрес и порт.
Когда возвращённое будущее завершится, сокет сервера будет привязан к указанному address и port и начнёт прослушивать его.
address может быть либо строкой, либо InternetAddress. Если address является строкой, bind выполнит InternetAddress.lookup и использует первое значение в списке. Чтобы прослушивать адаптер обратной связи, который позволит только входящим подключениям с локального хоста, используйте значение InternetAddress.loopbackIPv4 или InternetAddress.loopbackIPv6. Чтобы разрешить входящие подключения из сети, используйте одно из значений InternetAddress.anyIPv4 или InternetAddress.anyIPv6, чтобы привязаться ко всем интерфейсам или IP-адресу определённого интерфейса.
Если port имеет значение 0, система выберет временный порт. Фактический используемый порт можно получить, используя port геттер.
Необязательный аргумент backlog может быть использован для указания очереди прослушивания для настройки прослушивания базовой ОС. Если backlog имеет значение 0 (по умолчанию), система выберет разумное значение.
Входящие клиентские подключения преобразуются в защищённые подключения, используя сертификат и ключ сервера, заданные в context.
address должно быть задано как числовой адрес, а не имя хоста.
Чтобы запросить или потребовать, чтобы клиенты авторизовались путём предоставления сертификата клиента SSL (TLS), установите необязательные параметры requestClientCertificate или requireClientCertificate в значение true. Require подразумевает request, поэтому не нужно указывать оба. Чтобы проверить, был ли получен сертификат клиента, проверьте 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 BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-io/RawSecureServerSocket/bind.html