App que lee puerto, pasarla a servicio

Horst H. von Brand vonbrand en inf.utfsm.cl
Mie Nov 12 00:09:46 CLST 2008


jaimon <jaimon en terra.cl> wrote:
> Tengo una aplicación que envia datos (d1, d2, d3) por internet y otra que
> los captura por medio sockets, y los almacena para despues procesarlos. Eso
> funciona bien. Actualmente la aplicación que recibe los datos es eso...
> simplemente un ejecutable al que le asigno su propia ip y se queda
> escuchando en un puerto por si vienen los datos (d1, d2, d3) hasta que
> ocurre algun problema X y se cae, y tengo volver a ejecutarlo. Obviamente
> que me falta terminar la parte del control de las condiciones de borde, pero
> . . . igual.
> 
> Mis dudas son:
> 
> 1.- Hay alguna forma convertir el programa en servicio?

Capaz que si... pero programar esas cosas es un verdadero lio.
Es mucho mas sano instalarlo como servicio manejado por inetd(8) o
xinetd(8) (dependiendo del sabor que tu distro use). Y crear un programa de
esos es _trivial_ (hize alguno en shell (!) en unos 5 minutos alguna vez
solo para convencer a unos alumnos que no me creian que era sencillo).

> 2.- Puedo aprovechar que "san apache" ya funciona como demonio y hacer que
> reciba (y almacene) los datos? El prog. emisor de datos (que no es
> modificable) simplemente los envia al par ip/puerto que se le asigne, por lo
> que no puedo usar un cgi.

Claro. Pero el resultado sera un monstruo de Frankenstein de lo mas
folclorico, e igual de disfuncional. Y te recomiendo leer el libro del
caso, te daras cuenta que el verdadero monstruo /es/ Frankenstein, quien lo
creo.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile 2340000       Fax:  +56 32 2797513


Más información sobre la lista de distribución Linux