【问题标题】:'Connection aborted.', error(99, 'Cannot assign requested address') error in Python'连接中止。',错误(99,'无法分配请求的地址')Python中的错误
【发布时间】:2015-09-08 16:01:41
【问题描述】:

我已经检查过了, socket.error:[errno 99] cannot assign requested address and namespace in python

Repeated POST request is causing error "socket.error: (99, 'Cannot assign requested address')"

requests, cannot assign requested address, out of ports?

但如果我遇到问题,这些问题都没有给出预期的答案。 我有以下代码sn-p:

    with requests.Session() as session:
        js_response = session.get(url).json()
  • 注意:我尝试使用 urllib2,并且还简单地使用了 request.get()! 我试图重复查询 url,并且每次都期望一个 JSON 对象。但是,在完成一些请求后,我开始收到错误 99(标记如下)。这不是一个连续的过程。错误不断出现。我知道发生错误是因为我的请求端口用完了,Linux 内核无法为传出请求分配更多端口,因此引发错误。

错误:

('Connection aborted.', error(99, 'Cannot assign requested address')) 

谁能给我建议一种 Python 方法,这将帮助我重复请求 URL,而不会出现上述错误。

【问题讨论】:

    标签: python sockets python-2.7 python-requests


    【解决方案1】:

    我遇到这个问题的原因是,Linux 中默认可用的临时端口的数量是有限的。此外,由于 TCP 的设计工作方式,一旦其早期所有者释放控制权,这些端口就不会立即可用。在将端口号分配给其他进程之前,它会等待一段时间。

    所以,究竟发生了什么,我的 Python 脚本尝试使用所有可用端口并在使用后继续释放它们,但根据 TCP 实现,该端口不能立即供其他进程使用/其他请求,因此我看到了错误消息。

    有关此问题的更多信息,请参阅我的另一个问题,以及它在 Unix 和 Linux StackExachange 论坛上的回复: https://unix.stackexchange.com/questions/211647/how-safe-is-it-to-change-the-linux-ephemeral-port-range

    【讨论】:

      猜你喜欢
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 2023-01-18
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2022-01-25
      相关资源
      最近更新 更多