Исправить ошибку сокета Python 48



Попробуйте наш инструмент устранения неполадок

Ошибка сокета 48 - это ошибка Python, которая запускается, когда процесс пытается привязать себя к уже используемому порту.



Серверы



Что вызывает ошибку «socket.error: [Errno 48] Address уже используется»?

После краткого исследования мы обнаружили следующие причины:



  • Процесс привязан к порту: Каждый раз, когда процесс создается на сервере, порт используется им для связи с Интернетом. Порт похож на хост, который может обслуживать одного гостя за раз. Однако, если вы не укажете порт, сервер просто создаст его на порту по умолчанию. В следующий раз, когда вы создадите процесс, необходимо указать порт, потому что порт по умолчанию уже используется.

Решение 1. Указание номера порта

Ошибка в основном возникает, когда человек пытается привязать определенный процесс к порту по умолчанию, а порт по умолчанию уже привязан к другому процессу. Поэтому на этом этапе мы будем указывать порт, на котором должен быть ограничен процесс.

  1. Скорее всего, вы используете следующую команду для создания процесса.
    $ python -m SimpleHTTPServer
  2. Вместо этого используйте эту команду для создания процесса.
    $ python -m SimpleHTTPServer (номер порта)
  3. Подождите, пока процесс будет создан, и проверьте, сохраняется ли проблема.

Решение 2: Освобождение порта

Если порт уже используется другим процессом, новый процесс не сможет работать на этом порту. Следовательно, на этом этапе мы освободим порт, завершив предыдущий процесс и запустив новый. Для этого:

  1. Используйте следующую команду, чтобы вывести список процессов, использующих определенный порт.
    $ ps -fA | grep python
  2. Аргумент команды будет выглядеть примерно так, как в следующих строках.
    601 88234 12788 0 21:53 ttys000 0: 00.16 python -m SimpleHTTPServer
  3. Исходя из этого, код процесса, который мы будем использовать для уничтожения, - «88234».
  4. Используйте следующую команду, чтобы убить процесс.
    убить 88234

    В качестве альтернативы вы можете использовать следующую команду, чтобы убить его.



    sudo kill -9 PID
  5. Теперь вы можете привязать процесс к этому порту с помощью следующей команды.
    $ python -m SimpleHTTPServer (номер порта)
  6. Теперь процесс будет создан.

Решение 3. Перезапуск Raspberry Pi (только для Raspberry Pi)

Вы можете избавиться от этой ошибки на Raspberry Pi путем перезапуска Raspberry Pi или закрытия оболочки терминала. Raspberry Pi иногда не может автоматически убить процессы и вызывает эту ошибку из-за того, что предыдущие процессы уже запущены на портах.

1 минута на чтение