Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Forzar la desconexión de un TIdTCPClient (https://www.clubdelphi.com/foros/showthread.php?t=69575)

mcs 26-08-2010 09:18:49

Forzar la desconexión de un TIdTCPClient
 
Hola,

Tengo una aplicación que ataca varios dispositivos remotos. Estos dispositivos estan conectados a traves de conversores ethernet->serie.

Cada vez que tengo que hacer una conexión, lo que hago es crear tantos hilos como dispositivos debo leer, en cada hilo creo un TIdTCPClient, y a través del TIdTCPClient leo o escribo las ordenes necesarias.

El problema me viene que, a veces, alguna de estas conexiones no se cierran correctamente (el TIdTCPClient queda conectado). Debido a esto, y a que los conversores ethernet->serial solo admiten una conexión a la vez (y no los puedo modificar), al quedar el socket abierto pierdo totalmente la conexión con el dispositivo. En este momento, la única opción es reiniciar totalmente la aplicación.

Pero otro problema que hay es que dicha aplicación es un servicio de Windows, que corre (o debe correr) totalmente desatendida.

Entonces, sabeis alguna forma de forzar la desconexión y cierre de un TIdTCPClient? Por otra parte, voy a investigar la posibilidad de auto-reiniciar el servicio cuando más de un x% de las conexiones fallen, pero no sé si se podrá hacer...

Un saludo,

Marc

fide_uci 06-09-2010 16:31:27

Buenos dias Marc.

Todas esas cosas que dices, desde desconectar un TCPClient hasta reiniciar un servicio por supuesto que se pueden hacer. Por favor deja dicho que version de Delphi e Indy usas para poderte ayudar.


La franja horaria es GMT +2. Ahora son las 10:57:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi