2013-10-31 49 views
3

我正在運行golang http客戶端來壓力測試服務器。有時我得到錯誤「撥號tcp 161.170.xx.xxx:80:操作超時」錯誤。golang中的默認HTTP撥號超時值

我認爲這是一個HTTP客戶端超時。我正在考慮根據https://stackoverflow.com/a/16895878/198497增加超時值,但我想先了解一下golang的默認超時值。如果它取決於os而不是語言,我如何在Mac OS中檢查這個值?

回答

7

根據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進行檢查。