Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-11-2004
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Question 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!!
Responder Con Cita
  #2  
Antiguo 25-11-2004
athlontado athlontado is offline
Miembro
 
Registrado: sep 2004
Ubicación: Almázcara - León (España)
Posts: 63
Poder: 20
athlontado Va por buen camino
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.
__________________
Óscar Salvador Páez
Aprendiendo a aprehender de quienes aprehenden, sin cerciorarse de sus edades, culturas, sexos, razas, creencias u orígenes, es la forma más sabia de aprehender.
Responder Con Cita
  #3  
Antiguo 25-11-2004
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Unhappy

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
Responder Con Cita
  #4  
Antiguo 26-11-2004
athlontado athlontado is offline
Miembro
 
Registrado: sep 2004
Ubicación: Almázcara - León (España)
Posts: 63
Poder: 20
athlontado Va por buen camino
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.
__________________
Óscar Salvador Páez
Aprendiendo a aprehender de quienes aprehenden, sin cerciorarse de sus edades, culturas, sexos, razas, creencias u orígenes, es la forma más sabia de aprehender.
Responder Con Cita
  #5  
Antiguo 26-11-2004
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
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??...
Responder Con Cita
  #6  
Antiguo 26-11-2004
athlontado athlontado is offline
Miembro
 
Registrado: sep 2004
Ubicación: Almázcara - León (España)
Posts: 63
Poder: 20
athlontado Va por buen camino
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).
__________________
Óscar Salvador Páez
Aprendiendo a aprehender de quienes aprehenden, sin cerciorarse de sus edades, culturas, sexos, razas, creencias u orígenes, es la forma más sabia de aprehender.
Responder Con Cita
  #7  
Antiguo 26-11-2004
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
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!!
Responder Con Cita
  #8  
Antiguo 03-09-2005
dekae dekae is offline
Registrado
 
Registrado: sep 2005
Posts: 2
Poder: 0
dekae Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:09:19.


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
Copyright 1996-2007 Club Delphi