Corregiu l'error 48 del sòcol de Python



Proveu El Nostre Instrument Per Eliminar Problemes

Socket Error 48 és un error de pitó que s’activa quan el procés intenta lligar-se a un port que ja s’utilitza.



Servidors



Què provoca l'error 'socket.error: [Errno 48] Adreça ja en ús'?

Després d'una breu investigació, vam trobar que les causes eren:



  • Procés vinculat al port: Sempre que es crea un procés al servidor, aquest utilitza un port per comunicar-se amb Internet. El port és com un amfitrió que pot entretenir un hoste alhora. Tot i això, si no especifiqueu cap port, el servidor només el crea al port per defecte. La propera vegada que creeu un procés, cal especificar un port perquè el port per defecte ja està en ús.

Solució 1: especificació del número de port

L'error es produeix principalment quan una persona intenta lligar un procés específic al port predeterminat i el port per defecte ja està vinculat a un procés diferent. Per tant, en aquest pas, especificarem el port al qual s’ha de limitar el procés.

  1. El més probable és que utilitzeu l'ordre següent per crear un procés.
    $ python -m SimpleHTTPServer
  2. En lloc d'això, utilitzeu aquesta ordre per crear un procés.
    $ python -m SimpleHTTPServer (número de port)
  3. Espereu que es creï el procés i comproveu si el problema persisteix.

Solució 2: alliberar el port

Si el port ja està en ús per un procés diferent, el nou procés no podrà funcionar en aquest port. Per tant, en aquest pas, alliberarem el port finalitzant el procés anterior i executant el nou. Per això:

  1. Utilitzeu l'ordre següent per llistar diversos processos que fan servir un port específic.
    $ ps -fA | grep pitó
  2. L'argument de l'ordre tindrà un aspecte semblant a les següents línies.
    601 88234 12788 0 21:53 ttys000 0: 00.16 python -m SimpleHTTPServer
  3. D'aquest fet, el codi de procés que utilitzarem per matar és '88234'.
  4. Utilitzeu l'ordre següent per acabar amb el procés.
    mata 88234

    Com a alternativa, podeu utilitzar l'ordre següent per matar-lo.



    sudo kill -9 PID
  5. Ara podeu enllaçar el procés a aquest port mitjançant l'ordre següent.
    $ python -m SimpleHTTPServer (número de port)
  6. Ara es crearà el procés.

Solució 3: Reiniciar Raspberry Pi (només per a Raspberry Pi)

Podeu eliminar aquest error activat Raspberry Pi en reiniciar el Raspberry Pi o en matar l'intèrpret d'ordres del terminal. De vegades, el Raspberry Pi no pot matar els processos automàticament i provoca aquest error a causa dels processos anteriors que ja s’executaven als ports.

1 minut de lectura