Soy un novato en sockets de pitón y estoy realmente preocupado por la terquedad del método socket.accept(). Realmente necesito una forma de terminar un método socket.accept() o cualquier otra alternativa a socket.accept() que se ejecute solo una vez. Plzzzz alguien ayuda.Cómo detener una llamada python socket.accept()?
Respuesta
usted tiene varias opciones aquí:
- Cerrar el socket de escucha del otro hilo - el
accept()
lanzará una excepción si falla. - Abra una conexión local a la toma de audición; eso hace que el
accept()
regrese por diseño. - Utilice un mecanismo de aceptación que pueda bloquear en más de un objeto de sincronización para que se pueda señalar que la espera se devuelve sin una conexión.
- Utilice una alternativa sin bloqueo a
accept()
, (async comoAcceptEx()
y IO superpuesto en Windows).
En Python 'accept' se generará una excepción si falla. –
@NiklasB. - Gracias. No tengo ningún Python, pero la pregunta OP es más un problema general del servidor TCP y se necesita el mismo conjunto de 'trucos' en todos los idiomas. –
Puedes dar un ejemplo porque como dije antes soy un novato ... en realidad estoy escribiendo un servidor en pygtk. Mi problema es que la ventana se cuelga debido a la llamada socket.accept(). – cybernerd
- 1. ¿Cuál es el valor de retorno de Socket.accept() en Python
- 2. Detener Python incorporado
- 3. socket.accept error 24: Para muchos archivos abiertos
- 4. Detener un hilo atascado en una llamada de bloqueo
- 5. ¿Cómo detener una NSInvocationOperation?
- 6. Cómo detener System.Threading.Timer en el método de devolución de llamada
- 7. Cómo detener BaseHTTPServer.serve_forever() en una subclase BaseHTTPRequestHandler?
- 8. ¿Cómo funciona la llamada en Python?
- 9. ¿Cómo pausar una llamada a setTimeout?
- 10. cómo detener/cancelar android CountDownTimer
- 11. IOS: detener una NSTimer
- 12. Cómo detener la exclusión de atributos en Python
- 13. ¿Cómo detener Python parse_qs para analizar valores individuales en listas?
- 14. ¿Cómo "detener" y "reanudar" la secuencia de comandos de Python?
- 15. llamada función anidada en Python
- 16. jQuery autocompletar, ¿Puedo detener la llamada ajax anterior cuando presento una nueva?
- 17. Funciones dinámicas de llamada - Python
- 18. ¿Cómo detener una compilación en Visual Studio?
- 19. Cómo detener una aplicación desde la apertura
- 20. ¿Cómo detener el funcionamiento de una función?
- 21. Cómo detener una animación en C#/WPF?
- 22. Cómo detener/anular una función Jquery TimeOut?
- 23. Cómo detener una animación de UIView
- 24. ¿Cómo detener una aplicación en Heroku?
- 25. Cómo detener una animación (cancelar() no funciona)
- 26. Cómo responder programáticamente una llamada
- 27. J2ME: ¿Cómo hacer una llamada?
- 28. Cómo detectar una llamada Selector.wakeup
- 29. ¿Cómo responder programáticamente una llamada?
- 30. Cómo silenciar una llamada entrante
Debería verificar la función 'socket.setblocking' y el módulo [' select'] (http://docs.python.org/library/select.html). –