Foros del Web » Programando para Internet » PHP »

sockets c php

Estas en el tema de sockets c php en el foro de PHP en Foros del Web. Hola buenas, tengo creada una aplicación en c, que mediante sockets mantiene una comunicación entre dos ordenadores. Se me había ocurrido, arrancar el servidor de ...
  #1 (permalink)  
Antiguo 02/07/2010, 03:02
 
Fecha de Ingreso: febrero-2010
Mensajes: 4
Antigüedad: 14 años, 2 meses
Puntos: 0
sockets c php

Hola buenas, tengo creada una aplicación en c, que mediante sockets mantiene una comunicación entre dos ordenadores.

Se me había ocurrido, arrancar el servidor de dicha aplicación mediante un servidor web y php (ubicados en la misma maquina que el servidor socket de c), cuando un usuario registrado acceda a una página en concreto y una vez identificado, dicho usuario pueda si lo desea arrancar el servidor.

El problema es que una vez arrancado el servidor, la página se queda esperando a que el servidor del socket termine, y mi intención era poder seguir interactuando con la página.

Lo he intentado con

system("programa");
exec("programa");

y demas variantes

exec("programa &")
exec("bash | programa");
exec(bash | programa &);

También lo he intentado creando forks tanto en el servidor del socket como en la pagina y nada, el proceso padre no termina y devuelve la ejecución a la página, el proceso padre termina y el proceso hijo me sigue bloqueando la web, se queda esperando la página a que mate el proceso del servidor.

¿Alguien puede decirme como puedo conseguir esto?

Gracias
  #2 (permalink)  
Antiguo 02/07/2010, 08:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: sockets c php

No entendí bien el problema. ¿Te refieres que cuando tu ejecutas el programa PHP se queda en un "loop" y nunca termina o el programa no empieza porque el servidor web (es decir apache o lo que hayas usado) no empieza?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 02/07/2010, 09:16
 
Fecha de Ingreso: febrero-2010
Mensajes: 4
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: sockets c php

Bueno, ya lo he solucionado.

El problema como he explicado es el siguiente, tengo una aplicación cliente servidor en c ya creada y quiero arrancar el servidor por medio de otro servidor web alojado en la misma maquina.

Lo que ocurría es que una vez ejecutada la orden para poner en marcha el servidor (socket), la web se quedaba esperando a que el programa servidor (socket) finalizase.

Lo he solucionado, programando un fork en el servidor (socket), haciendo que el padre no espere con un wait la finalización del hijo, sino que termine inmediatamente. (Esto solo, ya lo había probado antes, pero no funcionaba)

Además, en la página web la llamada al servidor (socket) hay que realizarla de la siguiente manera
exec ("ruta_del_ejecutable > /dev/null 2>&1");

No entiendo muy bien lo que hace esta llamada, no domino php, pero funciona, el servidor socket en c, se ejecuta en segundo plano y puedo seguir trabajando con la web por un lado y el servidor socket recoger los paquetes que le llegan de su cliente por otro.


Un saludo y gracias
  #4 (permalink)  
Antiguo 02/07/2010, 09:19
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: sockets c php

Te recomiendo que leas este tema para que puedas entender http://www.forosdelweb.com/f18/ejecu...ground-693177/
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: sockets
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 14:51.