【问题标题】:Python urllib2. URLError: <urlopen error [Errno 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted>Python urllib2. URLError: <urlopen error [Errno 10048] 每个套接字地址(协议/网络地址/端口)通常只允许使用一次>
【发布时间】:2010-12-24 14:58:56
【问题描述】:

我正在与 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

【问题讨论】:

  • 端点定义在哪里?
  • 我只展示了 Connection 类的一种方法。端点是localhost:8000

标签: python urllib2


【解决方案1】:

错误来自 Windows 本身,请参阅Avoiding TCP/IP Port Exhaustion。要修复错误关闭您的连接,您不会调用 opener.close() 因此泄漏套接字。

【讨论】:

  • 谢谢。这节省了我很多时间。
猜你喜欢
  • 2021-05-20
  • 2017-02-21
  • 1970-01-01
  • 2019-05-03
  • 2017-06-09
  • 2011-01-15
相关资源
最近更新 更多