Beheben Sie den Python Socket-Fehler 48

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

Server

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

Nach kurzer Recherche fanden wir folgende Ursachen:

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

Lösung 1: Angeben der Portnummer

Der Fehler wird meistens 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: Freigeben des Ports

Wenn der Port bereits von einem anderen Prozess verwendet wird, kann der neue Prozess auf diesem Port nicht funktionieren. Daher werden wir in diesem Schritt den Port freigeben, 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 über einen bestimmten Port aufzulisten. $ Ps -fA | Grep Python
  2. Das Befehlsargument sieht ungefähr so ​​aus wie in den folgenden Zeilen. 601 88234 12788 0 9:53 PM ttys000 0: 00.16 python -m SimpleHTTPServer
  3. Aus diesem Grund lautet der Prozesscode, den wir zum Töten verwenden, “88234”.
  4. Verwenden Sie den folgenden Befehl, um den process.kill 88234 zu beendenAlternativ können Sie den folgenden Befehl verwenden, um es zu beenden.

    sudo kill -9 PID

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

Lösung 3: Neustart von Raspberry Pi (nur für Raspberry Pi)

Sie können diesen Fehler auf 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, da die vorherigen Prozesse bereits auf den Ports ausgeführt wurden.

Similar Posts

Leave a Reply

Your email address will not be published.