Sono un principiante nei socket python e sono davvero turbato dalla testardaggine del metodo socket.accept(). Ho davvero bisogno di un modo per terminare un metodo socket.accept() o qualsiasi altra alternativa a socket.accept() che viene eseguita una sola volta. Qualcuno aiuto Plzzzz.Come fermare una chiamata a python socket.accept()?
risposta
Sono disponibili diverse opzioni qui:
- chiudere il socket di ascolto da un altro thread - il
accept()
solleva un'eccezione se fallisce. - Apre una connessione locale alla presa di ascolto, il che rende il
accept()
ritorno di progettazione. - Utilizzare un meccanismo di accettazione in grado di bloccare più di un oggetto di sincronizzazione in modo che l'attesa possa essere segnalata per il ritorno senza una connessione.
- Utilizzare un'alternativa non bloccante a
accept()
, (async comeAcceptEx()
e IO sovrapposto su Windows).
In Python 'accept' genererà un'eccezione se fallisce. –
@NiklasB. - Grazie. Non ho Python, ma la domanda OP è più un problema generale del server TCP e lo stesso insieme di "trucchi" è necessario in tutte le lingue. –
Puoi fare un esempio perché come detto in precedenza sono un principiante .... in realtà sto scrivendo un server in pygtk. Il mio problema è che la finestra si blocca a causa della chiamata socket.accept(). – cybernerd
- 1. Python: come fermare una funzione?
- 2. Come fermare una discussione?
- 3. Python: come si fa a fermare il numpy dal multithreading?
- 4. Qual è il valore di ritorno di Socket.accept() in python
- 5. Come fermare un NSInvocationOperation?
- 6. Come fermare/uccidere una query in postgresql?
- 7. Come fermare una build in Visual Studio?
- 8. modo corretto per sfuggire a una chiamata sottoprocesso in python
- 9. Come fermare l'evento NStimer?
- 10. Come fermare un server simplehttps in python da httprequest handler?
- 11. Come fermare un loop infinito in modo sicuro in Python?
- 12. Come fermare Python chiudendo immediatamente quando eseguito in Microsoft Windows
- 13. Python con chiamata integrata a mpirun
- 14. python - chiamata da parte di una funzione
- 15. Come fermare/invalidare NSTimer
- 16. Come fermare un ScheduledExecutorService?
- 17. Come acquisire l'output stdout da una chiamata di funzione Python?
- 18. Attivare una chiamata Ajax a una via
- 19. Chiamata asincrona Tornado a una funzione
- 20. Come rispondere a una chiamata a livello di programmazione
- 21. Come avviare/fermare Runnable/Handler?
- 22. Python: come intercettare una chiamata al metodo che non esiste?
- 23. Come fermare un DispatchWorkItem in GCD?
- 24. Una parentesi aggiuntiva in una chiamata a una funzione nidificata in Python
- 25. come fermare yii cgridview ottenere i suoi file jquery in ogni chiamata di aggiornamento ajax
- 26. Eccezione argomento non valido in socket.accept() se si riavvia immediatamente dopo l'esecuzione di una sessione precedente
- 27. Come fermare ffmpeg da remoto?
- 28. Come fermare l'input in Perl?
- 29. Come funziona la chiamata in Python?
- 30. Come fermare un server heroku?
Si dovrebbe verificare la funzione 'socket.setblocking' e il modulo [' select'] (http://docs.python.org/library/select.html). –