connect静态方法
创建一个新的套接字连接到主机和端口,并返回一个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);
}