Javítsa ki a Python Socket 48 hibát



Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére

A Socket Error 48 egy python hiba, amely akkor jelenik meg, amikor a folyamat megpróbálja lekötni magát egy már használt porthoz.



Szerverek



Mi okozza a „socket.error: [Errno 48] cím már használatban van” hibát?

Rövid kutatás után a következőket találtuk:



  • Portra kötött folyamat: Amikor egy folyamat létrehozásra kerül a szerveren, egy portot használ az internethez való kommunikációhoz. A kikötő olyan, mint egy vendéglátó, amely egyszerre csak egy vendéget tud szórakoztatni. Ha azonban nem ad meg portot, akkor a szerver csak létrehozza azt az alapértelmezett porton. A folyamat következő létrehozásakor meg kell adni egy portot, mert az alapértelmezett port már használatban van.

1. megoldás: A portszám megadása

A hiba többnyire akkor vált ki, amikor egy személy megpróbál egy adott folyamatot az alapértelmezett porthoz kötni, és az alapértelmezett port már más folyamathoz van kötve. Ezért ebben a lépésben meghatározzuk azt a portot, amelyre a folyamatot be kell kötni.

  1. Valószínű, hogy a következő parancsot használja egy folyamat létrehozásához.
    $ python -m SimpleHTTPServer
  2. Ehelyett ezzel a paranccsal hozzon létre egy folyamatot.
    $ python -m SimpleHTTPServer (portszám)
  3. Várja meg a folyamat létrehozását, és ellenőrizze, hogy a probléma továbbra is fennáll-e.

2. megoldás: A Port felszabadítása

Ha a kikötő már egy másik folyamat használja, az új folyamat nem fog tudni működni az adott porton. Ezért ebben a lépésben felszabadítjuk a portot az előző folyamat leállításával, majd az új futtatásával. Azért:

  1. A következő paranccsal számos folyamatot felsorolhat egy adott port használatával.
    $ ps -fA | grep python
  2. A parancs argumentuma a következő sorokhoz hasonlóan fog kinézni.
    601 88234 12788 0 21:53 ttys000 0: 00.16 python -m SimpleHTTPServer
  3. Ebből az a folyamatkód, amelyet megölni fogunk, a „88234”.
  4. A következő paranccsal megölheti a folyamatot.
    ölje meg 88234-et

    Alternatív megoldásként a következő paranccsal is megölheti.



    sudo kill -9 PID
  5. A folyamatot a következő paranccsal kötheti ehhez a porthoz.
    $ python -m SimpleHTTPServer (portszám)
  6. A folyamat most létrejön.

3. megoldás: A Raspberry Pi újraindítása (csak a Raspberry Pi esetében)

Megszabadulhat ettől a hibától Raspberry Pi a Raspberry Pi újraindításával vagy a terminálhéj megölésével. A Raspberry Pi néha nem képes automatikusan megölni a folyamatokat, és a portokon futó korábbi folyamatok miatt kiváltja ezt a hibát.

1 perc olvasás