Spec-Zone.ru › Dart 2

dart:io

Метод connect

Future<Socket> connect(
  1. dynamic host,
  2. int port,
  3. {dynamic sourceAddress,
  4. int sourcePort = 0,
  5. Duration? timeout}
)

Создаёт новое соединение сокета с указанным хостом и портом и возвращает Future, который завершится либо значением Socket при успешном подключении, либо ошибкой, если поиск хоста или установление соединения завершились неудачно.

host может быть либо строкой String, либо адресом интернета InternetAddress. Если host является строкой String, метод connect выполнит поиск адреса интернета InternetAddress.lookup и попробует подключиться ко всем полученным адресам InternetAddress, пока не будет установлено соединение. В случае неудачи возвращается ошибка первого соединения, которое не удалось установить.

Аргумент sourceAddress может быть использован для указания локального адреса для привязки при установлении соединения. sourceAddress может быть либо строкой String, либо адресом интернета InternetAddress. Если передаётся строка String, она должна содержать числовой IP-адрес.

Аргумент sourcePort определяет локальный порт для привязки. Если sourcePort не указан или равен нулю, будет выбран порт.

Аргумент timeout используется для указания максимального допустимого времени ожидания установления соединения. Если timeout превышает системный предел времени ожидания, таймаут может произойти раньше, чем указано в timeout. При таймауте выбрасывается исключение SocketException, и все текущие попытки соединения с host отменяются.

Реализация

static Future<Socket> connect(host, int port,
    {sourceAddress, int sourcePort = 0, Duration? timeout}) {
  final IOOverrides? overrides = IOOverrides.current;
  if (overrides == null) {
    return Socket._connect(host, port,
        sourceAddress: sourceAddress,
        sourcePort: sourcePort,
        timeout: timeout);
  }
  return overrides.socketConnect(host, port,
      sourceAddress: sourceAddress, sourcePort: sourcePort, timeout: timeout);
}

© 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/Socket/connect.html

Spec-Zone.ru

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