![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
gracias manuc la razon por lo que no los destruyo es por que no se con certeza si el hilo espera a que termine una peticion para empezar a ejecutar la otra, o si crea diferentes instancias de la funcion donde los crea me podrias iluminar saludos.
|
|
#2
|
|||
|
|||
|
Hola richy08,
Dentro de cada hilo, la ejecución es lineal. Es decir, cuando se conecta el tcpClient, el tcpServer Crear un hilo que atenderá la actividad de esa conexión y la ejecución del código programado para ese hilo se hará de forma lineal. Si, mientras un hilo ejecuta su código, entra otra conexión, se generará un hilo paralelo y se ejecutaran ambos al mismo tiempo. Gracias a esto, el TCPServer es multihilo y cada conexión se ejecuta de forma independiente, salvo en los puntos donde se utilice "synchronize". Sabiendo esto, puedes hacer dos cosas: 1.- Crear tus componentes en el evento onConnect del tcpServer. Es decir, por cada hilo que se crea en el tcpServer, creas los componentes correspondientes. Para este caso, deberías destruir los componentes cuando no los necesites, es decir, cuando se destruye el hilo. Esto ocurre en el evento onDisconnect del tcpServer. 2.- Crear tus componentes en el evento onExecute del tcpServer. Es decir, cada vez que un hilo tiene actividad, creas los componentes que necesites. Igualmente, cuando ya no necesites estos componentes, los debes destruir. Esto es justo al final del evento onExecute del tcpServer. En ambos casos, debes relacionar de alguna forma cada componente que creas con el hilo correspondiente, de tal forma que cuando un hilo finaliza su ejecución sepas qué componentes has de destruir. Otra cosa que te recomiendo, es que incluyas un try-except en tu evento onExecute, englobando todo el código, para que puedas controlar mejor la destrucción de los componentes que creas y no se te quede ninguno cargado en memoria. Espero haberte ayudado de alguna forma. Si tienes más dudas, pregunta sin problemas. un saludo. |
|
#3
|
||||
|
||||
|
Cita:
saludos |
|
#4
|
|||
|
|||
|
Hola Richy08,
Pues sí, alguna te puedo dar. Este código puede ser un poco más complicado de seguir al principio, pero creo que el más cómo, una vez lo tengas claro. 1.- Te Creas una nueva clase, para manejar tus componentes:
Cambia el tipo de componetes que quieras crear. 2.- Al recibir la conexión en el tcpServer Creamos los componentes:
3.- ¿Cómo usarlos?
4.- Como destruirlos:
Básicamente, lo que se haces es "recordar" la dirección de memoria donde están localizados los componentes, utilizando para ello un "puntero" que tiene cada conexión (.data). Lo he hecho de cabeza y sin compilarlo. Puede ser que me haya equivocado en algo, pero básicamente lo puedes hacer así. Si encuentra alguna duda, consulta sin problemas. Un saludo. |
|
#5
|
||||
|
||||
|
gracias manuc tratare de implementarlo asi y comento.
|
|
#6
|
||||
|
||||
|
hola manuc perdon por responder hasta ahora peor me habian asignado otras tareas sabes he estado haciendo pruebas sobre la red, y los sockets abren y cierran perfectamente pero al devolver por el hilo el mensaje de que el procedimiento se llevo acabo bien nunca ejecuta ningun query ni devuelve le mensaje, es justo en este pedazo de codigo, me podrias orientar si es que me hace falta algo, este codigo lo tome del ejemplo de IdTCPDemo, gracias
|
|
#7
|
||||
|
||||
|
sabes creo que mas bien el problema radica en este pedazo de codigo que corre en el cliente
ya que al llegar a esta linea Frm_Posgue.Client.ReadBuffer(CB, SizeOf (CB)); por alguna razon no manda llamar el Synchronize alguna pista de que pueda ser gracias por cualquier comentario |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Como instalar los componenetes de la Norma 19 | diego11 | Varios | 3 | 17-10-2007 12:08:44 |
| componenetes en un TTabControl | lucasarts_18 | OOP | 2 | 27-09-2005 23:44:43 |
| instalar nuevos componenetes | aranel | OOP | 6 | 02-08-2005 09:25:33 |
| Multiple Hilos con Indy en Delphi 6 | cancerbero | Varios | 4 | 12-06-2004 19:01:21 |
| Componenetes para envio y recepcion de mensajes en la red | enrique800 | OOP | 3 | 29-01-2004 04:31:41 |
|