On Thu, 2009-01-22 at 12:31 -0300, Hector Salinas wrote:
>  Hace un mes que tengo leyendo sobre la programacion al socket
>  y sobre deamon En linux. Resulta que  realice un aplicación (o
>  pequeño script) que escucha en el puerto 5000 (socket) Y esta
>  corriendo como demonio (la aplicación eschucha desde un tornique. él
>  envia el codigo pdf147 a la aplicacion, la aplicación Consulta al
>  DBMS(mysql). si exite el persona devuelve una "A" al torniquete para
>  activarlo, de lo contrario La persona no entra). Hasta este punto
>  todo Bien

Bien, se ve facil.

>  El drama que tengo es el siguiente(o no se sin tan drama). La 
>  aplicación la realice con PHP-Cli (era lo que        mas tenia a mano Ya que
>  si no se hacia un aplicación rapidamente, se implentaba con la que
>  venia con el torniquete y esta esta hecha en VB 6 :( ) por
>  alguna extraña razon el script deja defunciona como demonio y tengo
>  que volve a ejecutar para que continue escuchando al
>  torniquete y eso me tiene loco (y llego a la conclusion De que
>  php-cli no me sirve).

Puedes agregar tu script PHP en /etc/inetd.conf y lo programas como si
lee/escribe desde la entrada estandar. Ejemplo en BASH:



amar...@videopodcast:~$ tail -1 /etc/inetd.conf 
9876 stream tcp nowait nobody /home/amartoq/ej.sh

amar...@videopodcast:~$ cat /home/amartoq/ej.sh 
#!/bin/bash

echo -n "Bienvenido.. su nombre? "
read NOMBRE
echo "HOLA $NOMBRE"

amar...@videopodcast:~$ telnet localhost 9876
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Bienvenido.. su nombre? Aldrin
HOLA Aldrin
Connection closed by foreign host.



> El OS que esta corriendo es CentOS 5.2 (como me gusta esta distro) al dia     
> Las preguntas  son
> 1.- ¿ la ca/&¬€~#· en hacerlo en php-cli?

No necesariamente...

> 2.- ¿ que lenguaje tendria que usar para este tipo de uso (c, java, python o 
> algun otro que desconosco) ?

Yo te recomiendo python (es realmente facil y elegante, no te costara
aprender). Lo que tienes que hacer:

1.- escribir una funcion que haga la pega y probarla
2.- embutir la funcion en un servidor socket. Ejemplo:
http://danieldandrada.blogspot.com/2007/09/python-socketserverthreadingtcpserver.html
3.- poner tu programa en /etc/inittab; asi se levanta automaticamente


La diferencia con el ejemplo bash/inetd es que esto sera un poco mas
"performante" y aprenderas python de paso ;)

-- 
Aldrin Martoq <[email protected]>
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/

Attachment: signature.asc
Description: This is a digitally signed message part

Responder a