FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con servidor TCP
hola,
estoy haciendo un servidor TCP con componente indy para delphi y en principio me funciona bastente bien. El problema que tengo es que cuando me llegan muchas peticiones rapidas por parte de un solo cliente al final me lanza un error y el programa deja de ejecutarse " Acces violaton at adress 0000000 ..." y no se a que es devido. este es el trozo de codigo que se ejecuta cuando me llega una peticion por parte del cliente
Última edición por dec fecha: 18-02-2008 a las 12:50:10. |
#2
|
|||
|
|||
supongo que es porque el readln es bloqueante y hasta recibir un mensaje se queda esperando, entonces, si un cliente se desconecta, el hilo esta en el readln y al perder el socket dara el error ese.
La duda que me queda es que es lo que tengo que hacer cuando un cliente se desconecte, si tengo que lieberar el hilo o simplemente tengo que hacer un exit. procedure TModuleManager.tcpServerExecute(AThread: TIdPeerThread); begin try mensaje := AThread.Connection.ReadLn; if mezua <> ' ' then begin if mensaje = 'fin' then exit; // DUDA, SI EL CLIENTE DESCONECTA SIMPLEMENTE TENGO QUE HACER UN EXIT O TENGO QUE LIBERAR EL HILO?? mensaje:=mensaje + ',Lagun.dll'; Athread.Synchronize(TareaThread); end; except raise exception.Create('Server'); end; end; |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema IP dinamica cn Servidor Control Remoto | Namaris | Redes | 8 | 29-01-2007 23:22:48 |
Problema de conexión al cambiar de servidor | Garfio | Firebird e Interbase | 5 | 06-12-2006 22:43:06 |
¿que problema hubo con el servidor? | Robert01 | Varios | 6 | 26-09-2006 22:50:13 |
Tengo un problema con la conexión al servidor | subzero | Firebird e Interbase | 3 | 27-01-2004 18:25:14 |
Problema al desconectar del servidor. | albion | Providers | 0 | 21-10-2003 17:31:07 |
|