如何中止网络。在Go中拨打电话?

时间:2017-09-18 12:23:10

标签: go

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

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

超时显然超过30秒,因为测试阻止直到30秒过去而没有拨号呼叫失败。

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

1 个答案:

答案 0 :(得分:7)

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)