статический метод bind
Прослушивает указанный адрес и порт.
Когда возвращённый future завершится, серверный сокет будет привязан к указанным address и port и начнёт прослушивать его.
Значением address может быть строка String или объект InternetAddress. Если address — строка String, 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. Требование сертификата подразумевает его запрос, поэтому задавать оба параметра избыточно. Чтобы проверить, был ли получен сертификат клиента, проверьте 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 BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-io/SecureServerSocket/bind.html