在网络上设置超时.拨号程序和截止日期上的连接结果是否相同



在Go中,我从拨号程序创建连接(超时(:

d := net.Dialer{Timeout: timeout, LocalAddr: *localAddr}
c.conn, err = d.Dial("tcp", address)

然而,我也可以设置连接的截止日期:

c.conn.SetDeadline(time.Now().Add(timeout));

这是多余的,还是在这里设置超时和截止日期有功能差异?

这些完全不同。

网。拨号程序用于建立连接截止日期(或超时(适用于连接建立。分别引用TimeoutDeadline字段的文档:

Timeout是拨号等待连接以完成。

Deadline是一个绝对的时间点,在该时间点之后,拨号将失败

另一方面,一个网络。Conn保持已建立的连接超时适用于连接上的读/写操作net.Conn:的文档中也明确说明了这一点

SetDeadline设置与联系它相当于同时调用SetReadDeadline和SetWriteDeadline。

请注意,这是一组常见的超时(以及其他超时(:一组用于连接建立,另一组用于已建立连接上的操作。

相关内容

  • 没有找到相关文章

最新更新