Fix Python Socket Error 48

Socket Error 48 är ett pythonfel som utlöses när processen försöker binda sig till en port som redan används.

Vad orsakar “socket.error: [Errno 48] Adressen redan används” Fel?

Efter kort forskning fann vi orsakerna till att vara:

  • Process bunden till port:  När en process skapas på servern används en port av den för att kommunicera med internet. Hamnen är som en värd som kan underhålla en gäst i taget. Men om du inte anger en port skapar servern bara den på standardporten. Nästa gång du skapar en process måste en port anges eftersom standardporten redan används.

Lösning 1: Ange portnummer

Felet utlöses oftast när en person försöker binda en specifik process till standardporten och standardporten redan är bunden till en annan process. Därför kommer vi i detta steg att specificera porten som processen ska begränsas till.

  1. Chansen är stor att du använder följande kommando för att skapa en process.
     $ python -m SimpleHTTPServer
  2. Använd det här kommandot istället för detta för att skapa en process.
     $ python -m SimpleHTTPServer (portnummer)
  3. Vänta tills processen skapas och kontrollera om problemet kvarstår.

Lösning 2: Frigör porten

Om porten redan används av en annan process kommer den nya processen inte att kunna fungera på den porten. Därför frigör vi i detta steg porten genom att avsluta den tidigare processen och sedan köra den nya. För det:

  1. Använd följande kommando för att lista ett antal processer med en specifik port.
    $ ps -fA | grep python
  2. Kommandoargumentet ser ungefär ut som följande rader.
     601 88234 12788 0 21:53 ttys000 0: 00.16 python -m SimpleHTTPServer
  3. Av detta är processkoden som vi kommer att använda för att döda ”88234”.
  4. Använd följande kommando för att döda processen.
    döda 88234

    Alternativt kan du använda följande kommando för att döda det.

    sudo kill -9 PID
  5. Du kan nu binda processen till den här porten med följande kommando.
     $ python -m SimpleHTTPServer (portnummer)
  6. Processen kommer nu att skapas.

Lösning 3: Starta om Raspberry Pi (endast för Raspberry Pi)

Du kan bli av med detta fel på Raspberry Pi genom att starta om Raspberry Pi eller genom att döda terminalskalet. Raspberry Pi kan ibland inte döda processerna automatiskt och utlöser detta fel på grund av de tidigare processerna som redan körs på portarna.