Korjaa Python Socket -virhe 48

Socket Error 48 on python-virhe, joka laukaistaan, kun prosessi yrittää sitoutua porttiin, joka on jo käytössä.

Mikä aiheuttaa "socket.error: [Errno 48] Osoite jo käytössä" -virheen?

Lyhyen tutkimuksen jälkeen havaitsimme syyt:

  • Porttiin sidottu prosessi:Aina kun palvelimelle luodaan prosessi, se käyttää porttia yhteydenpitoon Internetin kanssa. Satama on kuin isäntä, joka voi viihdyttää yhtä vierasta kerrallaan. Jos et kuitenkaan määritä porttia, palvelin luo sen vain oletusporttiin. Seuraavan kerran, kun luot prosessin, portti on määritettävä, koska oletusportti on jo käytössä.

Ratkaisu 1: Määritä porttinumero

Virhe laukaistaan ​​enimmäkseen, kun henkilö yrittää sitoa tietyn prosessin oletusporttiin ja oletusportti on jo sidottu toiseen prosessiin. Siksi tässä vaiheessa määritämme portin, johon prosessi on tarkoitus rajoittaa.

  1. Mahdollisuudet ovat, että käytät prosessia seuraavalla komennolla.
     $ python -m SimpleHTTPS-palvelin
  2. Käytä tämän sijaan prosessin luomiseen tätä komentoa.
     $ python -m SimpleHTTPServer (porttinumero)
  3. Odota prosessin luomista ja tarkista, jatkuuko ongelma.

Ratkaisu 2: Vapauta portti

Jos portti on jo käytössä eri prosessissa, uusi prosessi ei voi toimia kyseisessä portissa. Siksi tässä vaiheessa vapautamme portin lopettamalla edellisen prosessin ja suorittamalla sitten uuden. Sen vuoksi:

  1. Käytä seuraavaa komentoa luetellaksesi useita prosesseja tietyn portin avulla.
    $ ps -fA | grep python
  2. Komento-argumentti näyttää seuraavilta riveiltä.
     601 88234 12788 0 21:53 ttys000 0: 00.16 python -m SimpleHTTPServer
  3. Tästä prosessikoodi, jota käytämme tappamiseen, on ”88234”.
  4. Käytä seuraavaa komentoa tappaaksesi prosessin.
    tappaa 88234

    Vaihtoehtoisesti voit tappaa sen käyttämällä seuraavaa komentoa.

    sudo kill -9 PID
  5. Voit nyt sitoa prosessin tähän porttiin seuraavan komennon avulla.
     $ python -m SimpleHTTPServer (porttinumero)
  6. Prosessi luodaan nyt.

Ratkaisu 3: Käynnistä Raspberry Pi uudelleen (vain Raspberry Pi)

Voit päästä eroon tästä Raspberry Pi -virheestä käynnistämällä Raspberry Pi uudelleen tai tappamalla päätelaitteen kuoren. Vadelma Pi ei joskus pysty tappamaan prosesseja automaattisesti ja laukaisee tämän virheen johtuen aikaisemmista porteissa jo käynnissä olevista prosesseista.