FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
TCPServer y TCP Client
Hola a Tod@s l@s que lean el mensaje. Tengo una aplicación cliente (TCPClient) que manda mensajes de texto a la aplicacion Servidor (TCPServer). El Objeto TcpServer me crea en el evento OnExecute un TIdPeerThread por cada conexion que establece. En este evento es donde trato el mensaje:
procedure TForm1.tcpServerExecute(AThread: TIdPeerThread); var texto : string; begin try AThread.FreeOnTerminate:= True; AThread.Connection.ReadTimeout := 600000; texto := AThread.Connection.ReadLn; if flog.produccion then Flog.AgnadirMensaje(' <= MENSAJE RECIBIDO: ' + texto + ' - (tcpServerExecute)'); TratarMensaje(texto,AThread); except on e: exception do begin if flog.produccion then Flog.AgnadirMensaje(' ** ERROR: ' + e.Message + ' - (tcpServerExecute)'); end; end; athread.Connection.Disconnect; athread.Free; end; Pues bien, parece que todo hasta ahi está correcto, el problema viene cuando genero mensajes masivamente para probar el rendimiento del programa Servidor, y este se queda colgado como por problemas de memoria. como esta mi software, entiendo que el problema puede ser por establecer 350 conexiones en un momento y eso ocupa muchos recursos, pero limitanto esto a 15 mensaje cada vez tb ocurre. Me gustaria que alguien me diera algun consejo de como afrontar el problema porque se me estan acabando las ideas y no veo solucion aparente. Intente limitar las conexiones a 15 en MaxConnection pero conozco muy poco de este objeto para saber donde controlar sus excepciones. Tb agracederia que me dijerais donde encontrar informacion sobre este objeto de Indy. Gracias a Tod@s. Última edición por mutabal fecha: 21-02-2005 a las 12:58:35. Razón: Corregir |
|
|
|