Foros del Web » Programación para mayores de 30 ;) » Programación General »

Duda PHP y CGI

Estas en el tema de Duda PHP y CGI en el foro de Programación General en Foros del Web. Hola a todos tengo un script en php que se pone a la escucha por un puerto de mi servidor, entonces cuando un cliente se ...
  #1 (permalink)  
Antiguo 13/07/2005, 19:45
 
Fecha de Ingreso: julio-2005
Mensajes: 6
Antigüedad: 18 años, 9 meses
Puntos: 0
Duda PHP y CGI

Hola a todos tengo un script en php que se pone a la escucha por un puerto de mi servidor, entonces cuando un cliente se conecta se establece una comunicacion pero mi problema esta cuando otro cliente se conecta, resulta que cuando el primero se conecto si envia un mensaje pues se ve el mensaje que ha enviado al servidor a traves del socket, pero cuando el segundo cliente envia un mensaje el primero si que lo ve pero no el segundo eso es creo que porque el php deberia de estar siempre a la escucha de todas las conexiones pero desde el servidor no cuando yo cargo la pagina principal, mi idea es cargar un script con perl(que no entiendo muy bien todabia) que haga mi proposito pero he encontrado uno pero no se como hacerlo funcionar siempre me da un error 500 aqui dejo el codigo del scritpt :

use IO::Socket;
use IO::Select;
$SIG{PIPE}='IGNORE';
$m=new IO::Socket::INET(Listen=>1,LocalPort=>2229);
$O=new IO::Select($m);
$/="\0";
while(@S=$O->can_read){
foreach(@S){
if($_==$m){
$C=$m->accept;$O->add($C);
}else{
my $R=sysread($_, $i, 2048);

if($R==0){
$T=syswrite($_, '

', 2048); if($T==undef){ $O->remove($_); } }else{ foreach $C($O->handles){ $T=syswrite($C, $i,2048); } } } } }

pero no se porque no me funciona.

yo lo copio tal como esta aqui pero seguro que me dejo algo y no es ni la cabecera esta de
#!/usr/bin/perl y si que esta confirmado de que es la ruta, y le he dado los permisos chmod 755 pero tampoco me funciona si alguien me puede echar una mano.
¿Se puede hacer que mi codigo de php se ejecute en el cgi-bin para todo el mundo?
Lo ideal seria que se quedara a la escucha mi servidor por un puerto siempre pero eso no se si se puede hacer. y que vaya aceptando las conexiones etc... gracias.
  #2 (permalink)  
Antiguo 14/07/2005, 06:43
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Hola, se que hay una forma de hacer que PHP trabaje en modo CGI pero ni idea de como se hace...El problema en tu script puede estar en que estás llamando a dos módulos

IO::Socket;
IO::Select;

Verifica que los tengas instalados a ambos...

Además fijate que en lo que colocas no hay ningún mensaje de respuesta...Y generalmente los servidores tienen una medida de seguridad de que un script no pueda estar ejecutándose por más de 1 minuto (por cuestiones de seguridad) por eso es que no pueden escuchar un puerto por mucho tiempo como hace java, en el trabajo CGI el script está muerto hasta que se le pide la ejecución, ahí se ejecuta y vuelve a su estado normal...

Creo que eso de los sockets deberías hacerlo con Java...

Saludos
__________________
Esteban Quintana
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:36.