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}
)

Ожидает подключения на указанном адресе и порту.

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

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

Если используется адрес IP версии 6 (IPv6), будут приниматься подключения как по IP версии 6 (IPv6), так и по версии 4 (IPv4). Чтобы ограничить подключения только версией 6 (IPv6), задайте v6Only значение «только версия 6».

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

Необязательный аргумент 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.19.6/dart-io/ServerSocket/bind.html

Spec-Zone.ru

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