我正在运行golang http客户端来对服务器进行压力测试。有时我得到错误"拨打tcp 161.170.xx.xxx:80:操作超时"错误。
我认为这是HTTP客户端超时。我正在考虑根据https://stackoverflow.com/a/16895878/198497增加超时值,但我想先找出golang中的默认超时值。如果它取决于操作系统而不是语言,我如何在Mac OS中检查此值?
答案 0 :(得分:9)
根据http://golang.org/pkg/net/#Dialer:
type Dialer struct {
// Timeout is the maximum amount of time a dial will wait for
// a connect to complete. If Deadline is also set, it may fail
// earlier.
//
// The default is no timeout.
//
// With or without a timeout, the operating system may impose
// its own earlier timeout. For instance, TCP timeouts are
// often around 3 minutes.
因此,默认超时,不考虑操作系统强加的限制是无。
可以使用SetDeadline
设置超时。
默认的OSX超时可以(我认为)用sysctl net.inet.tcp
检查。