статический метод bind
Ожидает подключения на указанном адресе и порту.
Когда возвращённый объект 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