Løs Python Socket Error 48



Prøv Instrumentet Vårt For Å Eliminere Problemer

Socket Error 48 er en pythonfeil som utløses når prosessen prøver å binde seg til en port som allerede er i bruk.



Servere



Hva forårsaker feilmeldingen “socket.error: [Errno 48] Address allerede i bruk?

Etter kort forskning fant vi årsakene til å være:



  • Prosess bundet til havn: Hver gang en prosess opprettes på serveren, brukes en port av den til å kommunisere med internett. Havnen er som en vert som kan underholde en gjest om gangen. Men hvis du ikke spesifiserer en port, oppretter serveren den bare på standardporten. Neste gang du oppretter en prosess, må en port spesifiseres fordi standardporten allerede er i bruk.

Løsning 1: Spesifisere portnummer

Feilen utløses hovedsakelig når en person prøver å binde en bestemt prosess til standardporten og standardporten allerede er bundet til en annen prosess. Derfor vil vi i dette trinnet spesifisere porten som prosessen skal begrenses til.

  1. Sjansen er stor for at du bruker følgende kommando for å lage en prosess.
    $ python -m SimpleHTTPServer
  2. I stedet for dette, bruk denne kommandoen for å lage en prosess.
    $ python -m SimpleHTTPServer (portnummer)
  3. Vent til prosessen blir opprettet, og sjekk om problemet vedvarer.

Løsning 2: Frigjør porten

Hvis den havn er allerede i bruk av en annen prosess, vil den nye prosessen ikke kunne fungere på den porten. Derfor vil vi i dette trinnet frigjøre havnen ved å avslutte den forrige prosessen og deretter kjøre den nye. For det:

  1. Bruk følgende kommando for å liste opp et antall prosesser som bruker en bestemt port.
    $ ps -fA | grep python
  2. Kommandoargumentet vil se ut som følgende linjer.
    601 88234 12788 0 21:53 ttys000 0: 00.16 python -m SimpleHTTPServer
  3. Ut av dette er prosesskoden vi skal bruke til å drepe “88234”.
  4. Bruk følgende kommando for å drepe prosessen.
    drepe 88234

    Alternativt kan du bruke følgende kommando for å drepe den.



    sudo kill -9 PID
  5. Du kan nå binde prosessen til denne porten ved å bruke følgende kommando.
    $ python -m SimpleHTTPServer (portnummer)
  6. Prosessen vil nå bli opprettet.

Løsning 3: Start Raspberry Pi på nytt (bare for Raspberry Pi)

Du kan bli kvitt denne feilen den Bringebær Pi ved å starte Raspberry Pi på nytt eller ved å drepe terminalskallet. Raspberry Pi kan noen ganger ikke drepe prosessene automatisk og utløser denne feilen på grunn av tidligere prosesser som allerede kjører på portene.

1 minutt lest