Beheben Sie den Python-Socket-Fehler 48

Socket Error 48 ist ein Python-Fehler, der ausgelöst wird, wenn der Prozess versucht, sich an einen Port zu binden, der bereits verwendet wird.

Server

Was verursacht den „socket.error:“ [Errno 48] Adresse bereits verwendet“ Fehler?

Nach kurzer Recherche fanden wir folgende Ursachen:

  • An Port gebundener Prozess: Immer wenn ein Prozess auf dem Server erstellt wird, verwendet dieser einen Port für die Kommunikation mit dem Internet. Der Hafen ist wie ein Gastgeber, der jeweils einen Gast bewirten kann. Wenn Sie jedoch keinen Port angeben, erstellt der Server ihn einfach auf dem Standardport. Wenn Sie das nächste Mal einen Prozess erstellen, muss ein Port angegeben werden, da der Standardport bereits verwendet wird.

Lösung 1: Portnummer angeben

Der Fehler wird meist dann ausgelöst, wenn eine Person versucht, einen bestimmten Prozess an den Standardport zu binden und der Standardport bereits an einen anderen Prozess gebunden ist. Daher geben wir in diesem Schritt den Port an, an den der Prozess gebunden werden soll.

  1. Möglicherweise verwenden Sie den folgenden Befehl, um einen Prozess zu erstellen. $ python -m SimpleHTTPServer
  2. Verwenden Sie stattdessen diesen Befehl, um einen Prozess zu erstellen. $ python -m SimpleHTTPServer (Portnummer)
  3. Warten Sie, bis der Prozess erstellt wurde, und prüfen Sie, ob das Problem weiterhin besteht.

Lösung 2: Den Port freigeben

Wenn der Port bereits von einem anderen Prozess verwendet wird, kann der neue Prozess auf diesem Port nicht funktionieren. Daher geben wir in diesem Schritt den Port frei, indem wir den vorherigen Prozess beenden und dann den neuen ausführen. Dafür:

  1. Verwenden Sie den folgenden Befehl, um eine Reihe von Prozessen aufzulisten, die einen bestimmten Port verwenden.$ ps -fA | grep python
  2. Das Befehlsargument sieht etwa wie die folgenden Zeilen aus. 601 88234 12788 0 21:53 ttys000 0:00.16 python -m SimpleHTTPServer
  3. Daraus ergibt sich der Prozesscode, den wir zum Töten verwenden werden, „88234“.
  4. Verwenden Sie den folgenden Befehl, um den Prozess zu beenden.kill 88234

    Alternativ können Sie den folgenden Befehl verwenden, um es zu beenden.

    sudo kill -9 PID

  5. Sie können den Prozess nun mit dem folgenden Befehl an diesen Port binden. $ python -m SimpleHTTPServer (Portnummer)
  6. Der Prozess wird nun erstellt.

Lösung 3: Raspberry Pi neu starten (nur für Raspberry Pi)

Sie können diesen Fehler auf dem Raspberry Pi beheben, indem Sie den Raspberry Pi neu starten oder die Terminal-Shell beenden. Der Raspberry Pi kann die Prozesse manchmal nicht automatisch beenden und löst diesen Fehler aus, weil die vorherigen Prozesse bereits auf den Ports ausgeführt wurden.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *