Corrigir erro de soquete 48 do Python



Experimente Nosso Instrumento Para Eliminar Problemas

O erro de soquete 48 é um erro do Python que é acionado quando o processo tenta se ligar a uma porta que já está em uso.



Servidores



O que causa o erro “socket.error: [Errno 48] Address already in use”?

Após uma breve pesquisa, descobrimos que as causas são:



  • Processo vinculado à porta: Sempre que um processo é criado no servidor, uma porta é usada por ele para se comunicar com a internet. O porto é como um host que pode entreter um hóspede de cada vez. No entanto, se você não especificar uma porta, o servidor apenas a criará na porta padrão. Na próxima vez que você criar um processo, uma porta deverá ser especificada porque a porta padrão já está em uso.

Solução 1: Especificando o número da porta

O erro é principalmente acionado quando uma pessoa tenta vincular um processo específico à porta padrão e a porta padrão já está vinculada a um processo diferente. Portanto, nesta etapa, estaremos especificando a porta na qual o processo deve ser limitado.

  1. Provavelmente, você está usando o seguinte comando para criar um processo.
    $ python -m SimpleHTTPServer
  2. Em vez disso, use este comando para criar um processo.
    $ python -m SimpleHTTPServer (número da porta)
  3. Aguarde a criação do processo e verifique se o problema persiste.

Solução 2: Liberando o Porto

Se o porta já estiver em uso por um processo diferente, o novo processo não será capaz de funcionar nessa porta. Portanto, nesta etapa, estaremos liberando a porta encerrando o processo anterior e executando o novo. Por isso:

  1. Use o comando a seguir para listar vários processos usando uma porta específica.
    $ ps -fA | grep python
  2. O argumento do comando será semelhante às linhas a seguir.
    601 88234 12788 0 21:53 ttys000 0: 00.16 python -m SimpleHTTPServer
  3. Fora isso, o código de processo que usaremos para matar é “88234”.
  4. Use o seguinte comando para encerrar o processo.
    matar 88234

    Como alternativa, você pode usar o seguinte comando para eliminá-lo.



    sudo kill -9 PID
  5. Agora você pode vincular o processo a esta porta usando o seguinte comando.
    $ python -m SimpleHTTPServer (número da porta)
  6. O processo agora será criado.

Solução 3: reiniciando o Raspberry Pi (somente para o Raspberry Pi)

Você pode se livrar deste erro em Raspberry Pi reiniciando o Raspberry Pi ou eliminando o shell do terminal. O Raspberry Pi às vezes não consegue matar os processos automaticamente e dispara esse erro por causa dos processos anteriores já em execução nas portas.

1 minuto lido