Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Sock server + hilo (https://www.clubdelphi.com/foros/showthread.php?t=16339)

Enan0 24-11-2004 16:53:18

Sock server + hilo
 
Hola Buenos dias a todos:
Quiero hacer una aplicacion, que consta de un Server sock que recibe y almacene unos datos en una base de datos, el control que usaria es el IdTCPServer. en una aplicacion de servicio.
hasta aqui ningun problema...


EL PROBLEMA EN CUESTION......

Quiero que maneje hilos, de modo que pueda soportar varias conexiones "simultaneas".. alguna idea de como tengo que hacer o donde preguntar o buscar?, para empezar porque nunca utilice hilos.. Gracais!!

athlontado 25-11-2004 11:27:09

Todos los componentes servidor de la paleta Indy soportan hilos.
Cada vez que se establece una conexión con un cliente, se crea un hilo para atender las peticiones realizadas en su conexión asociada. De modo que, cuando un cliente envía un command, se ejecuta el método asociado a ese command en el servidor, dentro del hilo asociado a la conexión establecida por ese cliente. Los componentes Indy gestionan los hilos de forma transparente al programador, pero siempre permitiendo que éste pueda tomar el control sobre dicha gestión de los hilos.

Enan0 25-11-2004 20:53:47

Cita:

Empezado por athlontado
Cada vez que se establece una conexión con un cliente, se crea un hilo para atender las peticiones realizadas en su conexión asociada. De modo que, cuando un cliente envía un command, se ejecuta el método asociado a ese command en el servidor, dentro del hilo asociado a la conexión establecida por ese cliente. Los componentes Indy gestionan los hilos de forma transparente al programador, pero siempre permitiendo que éste pueda tomar el control sobre dicha gestión de los hilos.

Gracias por la info.. algo de eso ya habia leido.. el tema es que no se como hacer el seguimiento de ese hilo que se genera!..
el tema es que no e encontrado info.. y en el ejemplo de los Indy.. no esta claro.. lo que hace!, pero bueno.. sigo buscando info..

GRacias igual

athlontado 26-11-2004 09:36:05

No me debí de explicar claramente.

La creación de los hilos asociados a cada nueva conexión de los clientes, es automática. Los crea el propio objeto que realiza la función de servidor, cada vez que se conecta un cliente, y los destruye cuando los clientes se desconectan.

Otra cosa es que Indy te dé la opción de controlar esos hilos, pero tú no debes ni crear ni destruir hilos asociados a una conexión. Puedes crear hilos, si los necesitas, para otras tareas, partiendo de TThread, pero nada que ver con los relacionados con las conexiones entre componentes Indy.

Espero haberte aclarado algo más.

Enan0 26-11-2004 14:25:11

bien, he visto lo que decis., cada vez que realizo una nueva conexion manteniedo la anterior activa, me genera un nuevo hilo, ahora lo que yo quiero hacer. es que cuando se conecte y recibo el mensaje haga un insert de una base de datos (insert updte o lo que sea) tendria que hacerlo con la llamda al syncronize (creo que asi se escribe estoy lejos del delphi) y pasado como parametro la funcion que quiero que ejecute para realizar dichos comandas??...

athlontado 26-11-2004 16:14:55

Puedes hacerlo perfectamente con el evento OnConnect de IdTCPServer.

AThread.Synchronize(), sólo es necesario si los componentes que usas para acceder a la base de datos no son ThreadSafe (los FIBPlus, por ejemplo, sí lo son).

Enan0 26-11-2004 17:16:26

Gracias chabon!!!. voy a proabr con el Synchronize(), ya que uso siempre los componetes de ADo. despues te cuento como me fue!1 igualmente miles de gracias!!

dekae 03-09-2005 23:07:19

Cita:

Empezado por athlontado
Otra cosa es que Indy te dé la opción de controlar esos hilos, pero tú no debes ni crear ni destruir hilos asociados a una conexión. Puedes crear hilos, si los necesitas, para otras tareas, partiendo de TThread, pero nada que ver con los relacionados con las conexiones entre componentes Indy.

Espero haberte aclarado algo más.

Hola athlontado, podrías ayudarme con eso que mencionaste sobre TThread en el servidor. Yo necesito que aparte de hacerme ese hilo automático para cada cliente tener otro que lo usaría como chat, la cosa es que he creado mi thread pero no se donde colocarlo de tal manera que esté reconocido como parte del servidor para que también pueda recibir y mandar el texto.
Gracias


La franja horaria es GMT +2. Ahora son las 16:29:07.

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