[英]Python3 urllib.request will not close connections immediately
我有以下代碼來運行連續循環來從網站獲取一些內容:
from http.cookiejar import CookieJar
from urllib import request
cj = CookieJar()
cp = request.HTTPCookieProcessor(cj)
hh = request.HTTPHandler()
opener = request.build_opener(cp, hh)
while True:
# build url
req = request.Request(url=url)
p = opener.open(req)
c = p.read()
# process c
p.close()
# check for abort condition, or continue
內容被正確讀取。 但由於某種原因,TCP連接不會關閉。 我正在觀察來自dd-wrt路由器接口的活動連接數,並且它一直在上升。 如果腳本繼續運行,它將耗盡路由器的4096連接限制。 發生這種情況時,腳本只需進入等待狀態(路由器不允許新連接,但超時尚未命中)。 幾分鍾后,這些連接將被關閉,腳本可以再次恢復。
我能夠從路由器觀察到那些懸掛連接的狀態。 它們共享相同的狀態:TIME_WAIT。
我希望這個腳本同時使用不超過1個TCP連接。 我究竟做錯了什么?
我在Mac OS X 10.10上使用Python 3.4.2。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.