2013-03-24 46 views
4

我在Go中編寫了一個URL監視器程序,但經過一段時間後,我在netstat -nao|grep 80中發現了許多ESTABLISHED條目。URL監視器在netstat中產生多個ESTABLISHED(連接)條目

的getHttpStatusCode FUNC:

​​

我籤轉到手動,沒有發現類似req.Close(),只是推遲resp.Body.Close()。

這裏是netstat -nao | grep 80輸出:

TCP 1343352 0 192.168.2.33:29581 220.181.155.19:80 ESTABLISHED關閉(0.00/0/0)

tcpdump tcp port 80輸出:

14:32:54.085095 IP 113.12.80.13.http > wk_0_mysql.KIDC90805.zw.39174: Flags [.], seq 17376:18824, ack 1, win 42, options [nop,nop,TS val 4236145017 ecr 204896351], length 1448 
14:32:54.109206 IP wk_0_mysql.KIDC90805.zw.25834 > 220.181.90.8.http: Flags [S], seq 714805337, win 14600, options [mss 1460,sackOK,TS val 204896416 ecr 0,nop,wscale 9], length 0 
14:32:54.223349 IP 220.181.155.22.http > wk_0_mysql.KIDC90805.zw.19262: Flags [.], seq 864939135:864940583, ack 1630899997, win 42, options [nop,nop,TS val 1570834172 ecr 204896529], length 1448 
14:32:54.223352 IP wk_0_mysql.KIDC90805.zw.19262 > 220.181.155.22.http: Flags [.], ack 1448, win 1301, options [nop,nop,TS val 204896530 ecr 1570834172], length 0 
14:32:54.223432 IP 220.181.155.10.http > wk_0_mysql.KIDC90805.zw.27376: Flags [.], seq 3889371684:3889373132, ack 1106685068, win 42, options [nop,nop,TS val 3866364254 ecr 204896529], length 1448 
14:32:54.223436 IP wk_0_mysql.KIDC90805.zw.27376 > 220.181.155.10.http: Flags [.], ack 1448, win 594, options [nop,nop,TS val 204896530 ecr 3866364254], length 0 
14:32:54.275774 IP 121.12.101.130.http > wk_0_mysql.KIDC90805.zw.63329: Flags [.], seq 1314475629:1314477089, ack 642951590, win 54, length 1460 

回答

8

HTTP客戶端將默認使用保持活動連接,您可以通過調用transport.CloseIdleConnections(從docs)。

我不確定req.Close是否對客戶端請求做任何事情,它可能只針對服務器。

+0

是的,我發現這個功能...但我設置了'運輸。 DisableKeepAlives' true。我將設置'DisableKeepAlives = true',並在檢查週期後調用'CloseIdleConnections'。現在我重做測試。 – Terry 2013-03-24 07:41:55

+0

哇~~~~,這個問題是固定的,即使設置爲'DisableKeepAlives = true'應該調用'CloseIdleConnections'...但順便說一句,爲什麼我設置'DisableKeepAlives = true'對Keepalive – Terry 2013-03-24 08:00:48

+0

禁用在服務器上沒有影響:'' req.Header.Add(「Conection」,「close」)' – Terry 2013-03-24 15:13:04