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.
- Valószínű, hogy a következő parancsot használja egy folyamat létrehozásához.
$ python -m SimpleHTTPServer
- Ehelyett ezzel a paranccsal hozzon létre egy folyamatot.
$ python -m SimpleHTTPServer (portszám)
- 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:
- A következő paranccsal számos folyamatot felsorolhat egy adott port használatával.
$ ps -fA | grep python
- 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
- Ebből az a folyamatkód, amelyet megölni fogunk, a „88234”.
- 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
- A folyamatot a következő paranccsal kötheti ehhez a porthoz.
$ python -m SimpleHTTPServer (portszám)
- 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