这是我的测试代码,我设置了6s超时,但是程序只执行了3s,为什么?
package main
import "net"
import "time"
import "fmt"
func main() {
fmt.Println(time.Now())
conn, err := net.DialTimeout("tcp", "google.com:80",6*time.Second) // chinese people can't access google
fmt.Println(time.Now())
fmt.Println(conn,err)
}
试验结果:
2016-05-18 16:21:31.325340213 +0800 CST
2016-05-18 16:21:34.32909193 +0800 CST
<nil> dial tcp 59.24.3.173:80: i/o timeout
1条答案
按热度按时间iyzzxitl1#
您的代码是正确的,您的网络/互联网连接/路由到互联网有问题。
例如,如果你和谷歌之间的路由器/设备超载(或任何问题...),它可能会每隔几秒钟丢弃一些数据包,我猜。
我的测试结果:
然后我禁用了网络连接:
具有10项并行测试的测试样本代码: