dart:io
库中SecureSocket.connect
方法的用法介绍如下。
用法:
Future<SecureSocket> connect(
dynamic host,
int port,
{SecurityContext? context,
bool onBadCertificate(
X509Certificate certificate
)?,
void keyLog(
String line
)?,
List<String>? supportedProtocols,
Duration? timeout}
)
override
构造一个新的安全客户端套接字并将其连接到端口 port
上的给定 host
。
返回的 Future 将以 SecureSocket
完成,该 SecureSocket
已连接并准备好订阅。
使用SecurityContext 对象中设置的可信证书检查服务器提供的证书。默认的SecurityContext 对象包含一组内置的用于知名证书颁发机构的受信任根证书。
onBadCertificate
是不可验证证书的可选处理程序。处理程序接收到 X509Certificate ,并且可以检查它并决定(或让用户决定)是否接受连接。处理程序应返回 true 以继续 SecureSocket
连接。
keyLog
是一个可选回调,当与服务器交换新的 TLS key 时将调用该回调。每次调用keyLog
将在NSS Key Log Format 中接收一行文本。将这些行写入文件将允许工具(例如 Wireshark )解密通过此套接字发送的内容。这意味着允许network-level 调试安全套接字,不应在生产代码中使用。例如:
final log = File('keylog.txt');
final socket = await SecureSocket.connect('www.example.com', 443,
keyLog: (line) => log.writeAsStringSync(line, mode: FileMode.append));
supportedProtocols
是在与服务器进行 ALPN 协议协商期间使用的可选协议列表(按优先级降序排列)。示例值为 "http/1.1" 或 "h2"。可以通过 SecureSocket.selectedProtocol 获得所选协议。
参数timeout
用于指定等待建立连接的最大允许时间。如果 timeout
长于系统级超时持续时间,则超时可能会比 timeout
中指定的时间更早发生。超时时,会抛出 SocketException 并取消所有正在进行的与 host
的连接尝试。
相关用法
- Dart SecureSocket.secure用法及代码示例
- Dart SecurityContext.setTrustedCertificates用法及代码示例
- Dart SetMixin.forEach用法及代码示例
- Dart SetMixin.addAll用法及代码示例
- Dart Set.removeWhere用法及代码示例
- Dart Set.from用法及代码示例
- Dart SetMixin.reduce用法及代码示例
- Dart Set.remove用法及代码示例
- Dart Set.retainAll用法及代码示例
- Dart SetMixin.removeAll用法及代码示例
- Dart SetMixin.add用法及代码示例
- Dart SetMixin.expand用法及代码示例
- Dart SetMixin.elementAt用法及代码示例
- Dart SetMixin.contains用法及代码示例
- Dart Set.contains用法及代码示例
- Dart SetMixin.containsAll用法及代码示例
- Dart Set.retainWhere用法及代码示例
- Dart Set.union用法及代码示例
- Dart Set.unmodifiable用法及代码示例
- Dart SetMixin.isEmpty用法及代码示例
- Dart SetMixin.firstWhere用法及代码示例
- Dart Set.addAll用法及代码示例
- Dart SetMixin.skip用法及代码示例
- Dart Set.difference用法及代码示例
- Dart Set.clear用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 connect method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。