Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何设置使用net.Dialer建立连接的超时?_Go - Fatal编程技术网

Go 如何设置使用net.Dialer建立连接的超时?

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

例如,如果服务器的响应时间超过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", "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")