Android

Исправление ошибки Python Socket Error 48

Socket Error 48 — это ошибка python, которая возникает, когда процесс пытается привязаться к порту, который уже используется.

Серверы

Что вызывает “ошибку сокета.ошибка: [Errno 48] Address already in use” Error?

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

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

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

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

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

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

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

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

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

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

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

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

Добавить комментарий