具有多个 IP 地址的 TcpClient ConnectAsync - 行为是什么?
TcpClient ConnectAsync with multiple IP addresses - what's the behavior?
(上下文:服务提供对外部网站的监控功能;客户提供 URL 我们需要对其进行 ping;我们正在从 HttpClient 切换到 TcpClient 以提供可见性 DNS/Connect/SSL/Send/Receive 阶段)
以下是代码作用的摘要:
IPHostEntry host = await Dns.GetHostEntryAsync(hostname).ConfigureAwait(false);
await this.client.ConnectAsync(host.AddressList, port).ConfigureAwait(false);
GetHostEntryAsync returns 与主机关联的 IP 地址列表。
TcpClient 用它们做什么?它会尝试与第一个建立连接,如果失败则与第二个建立连接,依此类推?
It tries them one at a time,并且 returns 一旦第一个成功或全部失败。
(上下文:服务提供对外部网站的监控功能;客户提供 URL 我们需要对其进行 ping;我们正在从 HttpClient 切换到 TcpClient 以提供可见性 DNS/Connect/SSL/Send/Receive 阶段)
以下是代码作用的摘要:
IPHostEntry host = await Dns.GetHostEntryAsync(hostname).ConfigureAwait(false);
await this.client.ConnectAsync(host.AddressList, port).ConfigureAwait(false);
GetHostEntryAsync returns 与主机关联的 IP 地址列表。
TcpClient 用它们做什么?它会尝试与第一个建立连接,如果失败则与第二个建立连接,依此类推?
It tries them one at a time,并且 returns 一旦第一个成功或全部失败。