In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Servidor TCP Multithreading con xHarbour?

Foro de Xailer profesional en español
Responder
programacion
Mensajes: 23
Registrado: Jue Dic 27, 2007 10:26 am

Servidor TCP Multithreading con xHarbour?

Mensaje por programacion »

Hola Ignacio,
He estado buscando información sobre programación con multithreads y las
funciones de xHarbour para esto son de la versión de pago, no la que usamos
con Xailer, y en el foro sólo he encontrado un mensaje en el que le
respondías a otra persona sobre este mismo tema y le decías que vosotros
teníais vuestro propio sistema para hacer los threads directamente en C y
para que pudiéramos usarlo nosotros tendríais que hacer una clase TWebServer
o algo así.
Creo que el mensaje es de Diciembre de 2007, pero como estáis
super-liados con la nueva versión de Xailer, no sé si habéis tenido tiempo
de desarrollar algo de esto, o si hay alguna manera de que podamos hacerlo
nosotros con la interfaz de C...
Gracias.
P.D.: he hecho algún proyecto de prueba con el pequeño proyecto de
"ClientSock" que mandó alguien del foto y funciona. Añadiendo algunas
funciones más también hago de servidor (InetAccept...) pero si no abro
diferentes hilos, no podría atender más que a 1 cliente cada vez...
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9440
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Servidor TCP Multithreading con xHarbour?

Mensaje por ignacio »

Javier,
Xailer utiliza únicamente la versión 'single-thread' de xHarbour ya que
entendemos que la versión 'multi-thread' no está la suficientemente madura.
Cuando se publique la versión oficial de xHarbour 1.0 es muy probable que
publiquemos una versión 'multi-thread' de Xailer.
Xailer es capaz de manejar más de un hilo, pero sólo el hilo principal puede
contener código xHarbour, el resto han de estar escritos en 'C' unicamente y
no pueden acceder de ninguna forma a la máquina virtual. Me temo que el
mecanismo que utiliza Xailer para manejar múltiples hilos en bajo nivel no
está suministrado con los fuentes, lo siento.
Actualmente Xailer tiene una clase para descarga de fichero por Internet(
TAsynFileDownload) que internamente utiliza un thread aparte. Nuestra
intención es ir añadiendo nuevas clases de este tipo según vayan pidiendolas
los usuarios. Pero el trabajo puede ser considerable, ya que no podemos
apoyarnos en el módulo Inet() de xHarbour por ser síncrono.
Por otra parte, entiendo que si va a a realizar un servidor TCP que no tiene
porque tener ningún interface visual, sino que más bien debería ejecutarse
como servicio, lo mejor es que no utilice Xailer en absoluto, sino
únicamente xHarbour, de esta forma podría utilizar las librerías
multi-thread de xHarbour sin problemas. Le recomiendo que utilice nuestro
entorno de desarrollo xEdit.
Como última recomendación, es que habilite un puerto adicional para poder
controlar el estado del servidor vía HTTP y no se olvide de modificar el
módulo Errorsys.prg para que la salida sea únicamente a fichero.
Le deseo mucha suerte.
Un saludo,
--
Ignacio Ortiz de Zúñiga
[Soporte Xailer]
[Xailer support]
"Javier Jiménez" <programacion@microsur.es> escribió en el mensaje
news:4886e27d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola Ignacio,
> He estado buscando información sobre programación con multithreads y las
> funciones de xHarbour para esto son de la versión de pago, no la que
> usamos con Xailer, y en el foro sólo he encontrado un mensaje en el que le
> respondías a otra persona sobre este mismo tema y le decías que vosotros
> teníais vuestro propio sistema para hacer los threads directamente en C y
> para que pudiéramos usarlo nosotros tendríais que hacer una clase
> TWebServer o algo así.
> Creo que el mensaje es de Diciembre de 2007, pero como estáis
> super-liados con la nueva versión de Xailer, no sé si habéis tenido tiempo
> de desarrollar algo de esto, o si hay alguna manera de que podamos hacerlo
> nosotros con la interfaz de C...
>
> Gracias.
>
> P.D.: he hecho algún proyecto de prueba con el pequeño proyecto de
> "ClientSock" que mandó alguien del foto y funciona. Añadiendo algunas
> funciones más también hago de servidor (InetAccept...) pero si no abro
> diferentes hilos, no podría atender más que a 1 cliente cada vez...
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder