Go 如何设置使用net.Dialer建立连接的超时?
例如,如果服务器的响应时间超过3秒,则需要获取错误或特定信息。 我搜索了所有内容,但只看到了连接的生存期(net.Dialer.Timeout/net.Dialer.Deadline),但需要精确限制建立时间 现在我的代码是Go 如何设置使用net.Dialer建立连接的超时?,go,Go,例如,如果服务器的响应时间超过3秒,则需要获取错误或特定信息。 我搜索了所有内容,但只看到了连接的生存期(net.Dialer.Timeout/net.Dialer.Deadline),但需要精确限制建立时间 现在我的代码是 dialer := net.Dialer{LocalAddr: net.TCPAddr{IP:"192.168.1.68", Port:35030}} conn, err := tls.DialWithDialer(dialer, "tcp&q
dialer := net.Dialer{LocalAddr: net.TCPAddr{IP:"192.168.1.68", Port:35030}}
conn, err := tls.DialWithDialer(dialer, "tcp", "123.45.67.89", &tls.Config{...})
谢谢 有很多方法可以做到这一点,首先,您可以简单地使用
net.Dialer
,它可以实现您想要的功能:
//超时是拨号盘等待的最大时间
连接到完成。如果还设置了截止日期,则可能会失败
早些时候
还有其他一些解决方案,如使用net.DialTimeout
,以及为您传递的上下文设置超时:
timeout := time.Millisecond*3000
ctx, _ := context.WithTimeout(context.Background(), timeout)
conn , err := dialer.DialContext(ctx, "tcp", "123.45.67.89:8000")
这是建立连接的时间,请参阅或。您是否尝试过设置
超时
或截止日期
?谢谢meshkati!我想我刚刚删除了两个属性,因为其中一个在我的项目中使用不正确。
timeout := time.Millisecond*3000
ctx, _ := context.WithTimeout(context.Background(), timeout)
conn , err := dialer.DialContext(ctx, "tcp", "123.45.67.89:8000")