No meu programa de soquete Python, às vezes preciso interrompê-lo com Ctrl-C. Quando eu faço isso, ele fecha a conexão usando socket.close()
.
No entanto, quando tento reabri-lo, tenho que esperar cerca de um minuto antes de poder conectar novamente. Como se fecha corretamente um soquete? Ou isso é pretendido?
python
sockets
connection
errno
Skylerl
fonte
fonte
fonte
Se você usar um TCPServer, UDPServer ou suas subclasses no módulo SocketServer, você pode definir esta variável de classe (antes de instanciar um servidor):
(via SocketServer.ThreadingTCPServer - Não é possível vincular ao endereço após a reinicialização do programa )
Isso faz com que o init (construtor):
fonte
porque você está tentando rodar serviço na mesma porta que já está rodando.
algum tempo acontecerá porque seu serviço não foi interrompido na pilha de processos. você tem que matá-los
não há necessidade de instalar nada aqui é o comando de uma linha para matar todos os processos Python em execução.
para sistema operacional baseado em Linux:
Bash:
Peixe:
fonte
Nada funcionou para mim, exceto executar um subprocesso com este comando, antes de chamar
HTTPServer(('', 443), myHandler)
:Claro que isso é apenas para sistemas operacionais semelhantes ao Linux!
fonte
Uma solução simples que funcionou para mim é fechar o Terminal e reiniciá-lo.
fonte
Em primeiro lugar, encontre o ID do processo Python usando este comando
Você obterá um número pid nomeando seu processo python na segunda coluna
Em seguida, elimine o processo usando este comando
fonte
Obteve o mesmo erro:
Passos seguidos:
1 - usado
$ ps -fA | grep python
2 - Matou todo o processo
3 - Terminal fechado
4 - relançou e lançou o aplicativo (mkchromecast).
5 - não recebi esta mensagem de erro.
Tenho outro problema. acompanhando isso.
fonte
execute o comando
exemplo para frasco:
fuser -k 5000/tcp
Além disso, lembre-se de que este erro surge quando você interpõe por ctrl + z. então para encerrar use ctrl + c
fonte