Python urllib2. URLError: <ошибка urlopen [Errno 10048] Обычно разрешено только одно использование каждого адреса сокета (протокол / сетевой адрес / порт)> - PullRequest
4 голосов
/ 24 декабря 2010

Я делаю несколько подключений к API.Делаем запрос на удаление.Я получил эту ошибку в 3000-м запросе.

Примерно так:

 def delete_request(self,path):
    opener = urllib2.build_opener(urllib2.HTTPHandler)
    request = urllib2.Request('%s%s'%(self.endpoint,path))
    signature = self._gen_auth('DELETE', path, '')
    request.add_header('X-COMPANY-SIGNATURE-AUTH', signature)
    request.get_method = lambda: 'DELETE'
    resp = opener.open(request)

Чем в консоли:

for i in xrange(300000): 
    con.delete_request('/integration/sitemap/item.xml/media/%d/' % i)

После примерно 3000-го запроса написано:

URLError: urlopen error [Errno 10048]
Only one usage of each socket address (protocol/network address/port)
is normally permitted

1 Ответ

9 голосов
/ 24 декабря 2010

Ошибка происходит от самой Windows, см. Предотвращение исчерпания порта TCP / IP . Чтобы исправить ошибку, закройте ваше соединение, вы не вызываете opener.close (), следовательно, утечка сокетов.

...