Spec-Zone.ru › Dart 2

dart:io

Метод bind

Future<ServerSocket> bind(
  1. dynamic address,
  2. int port,
  3. {int backlog = 0,
  4. bool v6Only = false,
  5. bool shared = false}
)

Прослушивает заданный адрес и порт.

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

address может быть либо строкой String, либо объектом InternetAddress. Если address является строкой String, метод bind выполнит InternetAddress.lookup и использует первое значение в списке. Чтобы прослушивать локальный адаптер, который будет разрешать только входящие соединения с локального хоста, используйте значение InternetAddress.loopbackIPv4 или InternetAddress.loopbackIPv6. Чтобы разрешить входящие соединения из сети, используйте одно из значений InternetAddress.anyIPv4 или InternetAddress.anyIPv6 для привязки ко всем интерфейсам или IP-адресу конкретного интерфейса.

Если используется адрес IPv6, будут приниматься как IPv6, так и IPv4 подключения. Чтобы ограничить это только IPv6, используйте v6Only для установки ограничения на IPv6.

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

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

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

Реализация

static Future<ServerSocket> bind(address, int port,
    {int backlog = 0, bool v6Only = false, bool shared = false}) {
  final IOOverrides? overrides = IOOverrides.current;
  if (overrides == null) {
    return ServerSocket._bind(address, port,
        backlog: backlog, v6Only: v6Only, shared: shared);
  }
  return overrides.serverSocketBind(address, port,
      backlog: backlog, v6Only: v6Only, shared: shared);
}

© 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/ServerSocket/bind.html

Spec-Zone.ru

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