Fix Python Socket-fejl 48



Prøv Vores Instrument Til At Fjerne Problemer

Socket Error 48 er en python-fejl, der udløses, når processen forsøger at binde sig til en port, der allerede er i brug.



Servere



Hvad forårsager “socket.error: [Errno 48] Adresse allerede i brug” Fejl?

Efter kort undersøgelse fandt vi årsagerne til at være:



  • Process bundet til havn: Hver gang der oprettes en proces på serveren, bruges en port af den til at kommunikere med internettet. Havnen er som en vært, der kan underholde en gæst ad gangen. Men hvis du ikke angiver en port, opretter serveren den bare på standardporten. Næste gang du opretter en proces, skal der angives en port, fordi standardporten allerede er i brug.

Løsning 1: Angivelse af portnummer

Fejlen udløses for det meste, når en person forsøger at binde en bestemt proces til standardporten, og standardporten allerede er bundet til en anden proces. Derfor specificerer vi i dette trin den port, som processen skal afgrænses på.

  1. Chancerne er, at du bruger følgende kommando til at oprette en proces.
    $ python -m SimpleHTTPServer
  2. I stedet for dette skal du bruge denne kommando til at oprette en proces.
    $ python-m SimpleHTTPServer (portnummer)
  3. Vent på, at processen oprettes, og kontroller, om problemet fortsætter.

Løsning 2: Frigørelse af havnen

Hvis Havn er allerede i brug af en anden proces, vil den nye proces ikke kunne fungere på den port. Derfor frigiver vi porten i dette trin ved at afslutte den forrige proces og derefter køre den nye. For det:

  1. Brug følgende kommando til at liste et antal processer ved hjælp af en bestemt port.
    $ ps -fA | grep python
  2. Kommandoargumentet vil se ud som følgende linjer.
    601 88234 12788 0 21:53 ttys000 0: 00.16 python -m SimpleHTTPServer
  3. Ud af dette er den proceskode, som vi vil bruge til at dræbe, '88234'.
  4. Brug følgende kommando til at dræbe processen.
    dræb 88234

    Alternativt kan du bruge følgende kommando til at dræbe den.



    sudo kill -9 PID
  5. Du kan nu binde processen til denne port ved hjælp af følgende kommando.
    $ python-m SimpleHTTPServer (portnummer)
  6. Processen oprettes nu.

Løsning 3: Genstart Raspberry Pi (kun til Raspberry Pi)

Du kan slippe af med denne fejl den Hindbær Pi ved at genstarte Raspberry Pi eller ved at dræbe terminalskallen. Raspberry Pi er undertiden ikke i stand til at dræbe processerne automatisk og udløser denne fejl på grund af de tidligere processer, der allerede kører på portene.

1 minut læst