He creado una aplicación Cliente/Servidor con el componente IdTCPServer. Los clientes se conectan y mantienen una conexión persistente durante la vida de la aplicación. Si se interrumpe la conexión de red (lo que ocurre con bastante frecuencia porque los clientes se conectan con tarjetas de aire inalámbricas), el cliente se volverá a conectar automáticamente. Todo esto funciona bienCómo tratar las caídas de red e Indy IdTCPServer
Mi problema es tratar con los sockets en el servidor correspondiente a la conexión perdida. No detectan que la red se desconecte y se desconecte. Después de leer varios artículos relacionados, he aprendido que no hay forma de que el servidor sepa si se eliminó una conexión. Debe esperar algún evento para descubrir esto.
Así que mi pregunta es, ¿debería construir algún mecanismo en mi servidor para "manipular" periódicamente los sockets con conexiones caídas? Y si es así, ¿cómo? Pensé que una de las maneras sería hacer un ciclo a través de todas las conexiones e intentar enviarles datos. Encuentro que esto activará ese "evento" necesario.
buen punto. Tal como está, retengo el último latido para cada conexión. Y podría construir fácilmente en lógica como sugieres. –
+1. Tú también me ayudaste –