gpt4 book ai didi

go - 如何在 Go 中中止 net.Dial 调用?

转载 作者:IT王子 更新时间:2023-10-29 01:50:04 26 4
gpt4 key购买 nike

我有一个尝试连接到服务器的客户端。

我需要能够终止客户端并中止此拨号尝试。这可能吗 ?我该怎么做?

超时显然超过 30 秒,因为测试 block 直到 30 秒过去而 Dial 调用没有失败。

我们可以自己指定超时吗?

最佳答案

net.DialerTimeoutDeadline 字段,也可以使用 DialContext 的上下文这允许超时和取消。

可以引用DialTimeout查看如何设置基本拨号器:

func DialTimeout(network, address string, timeout time.Duration) (Conn, error) {
d := Dialer{Timeout: timeout}
return d.Dial(network, address)
}

还有一个带有 context.Context 的例子:

var d Dialer
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()

return d.DialContext(ctx, network, address)

关于go - 如何在 Go 中中止 net.Dial 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46279205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com