Mi aplicación de servidor utiliza TIdTCPServer, varias aplicaciones de cliente utilizan TIdTCPClients para conectarse al servidor (todas las computadoras están en la misma LAN).Práctica recomendada: ¿Mantener la conexión TCP/IP abierta o cerrada después de cada transferencia?
Algunos de los clientes solo necesitan ponerse en contacto con el servidor cada dos minutos, otros una vez por segundo y uno lo hará aproximadamente 20 veces por segundo.
Si mantengo abierta la conexión entre un Cliente y el Servidor, guardaré la reconexión, pero debo verificar si la conexión se pierde.
Si cierro la conexión después de cada transferencia, tiene que volver a conectarse todas las veces, pero no es necesario verificar si la conexión aún está allí.
¿Cuál es la mejor manera de hacerlo?
¿A qué frecuencia de transferencias de datos debo mantener la conexión abierta en general?
¿Cuáles son otras ventajas/desventajas para ambos escenarios?
La sobrecarga de hacer una nueva conexión TCP es principalmente unas pocas vueltas. Y esos son bastante rápidos en LAN. Así que cerraría la conexión después de unos segundos de no usarla. – CodesInChaos
Pero lo escribiría de la manera más simple (muy probablemente cierre instantáneo) primero y luego verificará si el rendimiento es satisfactorio. – CodesInChaos
Ver mi respuesta a esta pregunta: http://stackoverflow.com/questions/4872800/socket-open-and-close-on-1-sec-or-to-hold-open/4873002#4873002 –