Ver Mensaje Individual
  #2  
Antiguo 05-05-2010
manuc manuc is offline
Miembro
 
Registrado: abr 2010
Posts: 165
Reputación: 15
manuc Va por buen camino
Hola vejerf,

Si se te ha quedado "congelado" el cliente, es probable que sea porque esté haciendo un read en el buffer. Como el servidor no llega a responder, el cliente se queda esperando a que le llegue información por el buffer.

Lo del hilo es buena idea, ya que la lectura y escritura del cliente quedaría en un segundo plano y no te congelaría el hilo principal, que es el que atiende las peticiones del usuario.

No obstante, hacer un hilo tiene sus dificultades y tienes que dominar muy bien la técnica para que todo te funcione correctamente.

Una cosa que puedes intentar y que será más fácil es a indicar un TimeOut de lectura del buffer:
Código Delphi [-]
IdTCPClient1.ReadTimeout := 1000;

Para mayor seguridad, lo podrías implementar también el servidor, para cuando se te de el caso contrario.

Ya me cuentas cómo te va con esto. Si no te soluciona tu problema, comentamos cómo lo podrías hacer un un hilo secundario.

Espero que te ayude.

Un saludo.
Responder Con Cita