connect静态方法

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

创建一个新的套接字连接到指定的主机和端口,并返回一个Future。当连接成功时,此Future将完成并返回一个Socket对象;如果主机查找或连接失败,将返回错误。

host可以是StringInternetAddress。如果hostString,则connect将执行InternetAddress.lookup并尝试所有返回的InternetAddress,直到连接成功。除非建立连接,否则将返回第一次失败连接的错误。

参数sourceAddress可以用来指定建立连接时绑定的本地地址。sourceAddress可以是StringInternetAddress。如果传递的是String,它必须是一个数字IP地址。

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