Correction de l'erreur 48 du socket Python

L'erreur de socket 48 est une erreur python qui est déclenchée lorsque le processus tente de se lier à un port déjà utilisé.

Quelles sont les causes de l'erreur «socket.error: [Errno 48] Adresse déjà utilisée»?

Après de brèves recherches, nous avons constaté que les causes étaient:

  • Processus lié au port:  chaque fois qu'un processus est créé sur le serveur, un port est utilisé par celui-ci pour communiquer avec Internet. Le port est comme un hôte qui peut recevoir un invité à la fois. Cependant, si vous ne spécifiez pas de port, le serveur le crée simplement sur le port par défaut. La prochaine fois que vous créez un processus, un port doit être spécifié car le port par défaut est déjà utilisé.

Solution 1: spécification du numéro de port

L'erreur est principalement déclenchée lorsqu'une personne tente de lier un processus spécifique au port par défaut et que le port par défaut est déjà lié à un processus différent. Par conséquent, dans cette étape, nous allons spécifier le port sur lequel le processus doit être lié.

  1. Il y a de fortes chances que vous utilisiez la commande suivante pour créer un processus.
     $ python -m SimpleHTTPServer
  2. Au lieu de cela, utilisez cette commande pour créer un processus.
     $ python -m SimpleHTTPServer (numéro de port)
  3. Attendez que le processus soit créé et vérifiez si le problème persiste.

Solution 2: Libérer le port

Si le port est déjà utilisé par un processus différent, le nouveau processus ne pourra pas fonctionner sur ce port. Par conséquent, dans cette étape, nous libérerons le port en mettant fin au processus précédent, puis en exécutant le nouveau. Pour ça:

  1. Utilisez la commande suivante pour répertorier un certain nombre de processus utilisant un port spécifique.
    $ ps -fA | grep python
  2. L'argument de commande ressemblera aux lignes suivantes.
     601 88234 12788 0 9:53 PM ttys000 0: 00.16 python -m SimpleHTTPServer
  3. En dehors de cela, le code de processus que nous utiliserons pour tuer est «88234».
  4. Utilisez la commande suivante pour arrêter le processus.
    tuer 88234

    Vous pouvez également utiliser la commande suivante pour le tuer.

    sudo kill -9 PID
  5. Vous pouvez maintenant lier le processus à ce port à l'aide de la commande suivante.
     $ python -m SimpleHTTPServer (numéro de port)
  6. Le processus va maintenant être créé.

Solution 3: redémarrer Raspberry Pi (uniquement pour Raspberry Pi)

Vous pouvez vous débarrasser de cette erreur sur Raspberry Pi en redémarrant le Raspberry Pi ou en tuant le shell du terminal. Le Raspberry Pi est parfois incapable de tuer les processus automatiquement et déclenche cette erreur en raison des processus précédents déjà en cours d'exécution sur les ports.