User Tag List

Página 4 de 12 PrimerPrimer 12345678 ... ÚltimoÚltimo
Resultados 46 al 60 de 166

Tema: Programación WEB: CGI, JS, HTML, comunicarlos entre e ellos, alternativas...

  1. #46

    Fecha de ingreso
    May 2004
    Mensajes
    1,535
    Mencionado
    8 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    75
    Agradecer Thanks Received 
    5
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    Vale, vuelvo a la carga. La idea de xzakox con el JAVA y los sockets es viable, pero falla en el detalle de que es menos compatible con navegadores "humildes" (ahora que si no hay otra solución, que les den a los navegadores humildes).

    Mi idea es a ver de qué manera puedo hacer algo similar, pero que en lugar de ocurrir en el cliente (navegador) ocurra en el servidor (que como ya comenté, ya no es el router, ahora es un PC). Es decir, el router corre el servidor del programa Player (el de robótica). En el PC servidor web corre el cliente del programa Player, que se comunica con el propio programa servidor (o como sea), y este a su vez sirve una web. A través de internet esa página es servida, sencilla, pero que integra el control y el mostrado de datos del robot (trabajo sucio hecho por el servidor web).

    No sé si me explicao, si no, lo vuelvo a contar, jeje.

    Un saludo y gracias
    Con permiso de xzakox:

  2. #47

    Fecha de ingreso
    Jan 2006
    Ubicación
    Xixón, Asturies
    Mensajes
    2,741
    Mencionado
    20 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    14
    Thanked in
    Agradecido 6 veces en [ARG:2 UNDEFINED] posts
    Si, perfectamente, pero igualmente tienes el mismo problema.
    Si desde la web quieres mostrar los datos en tiempo real, que se actualizen solos, pues necesitas algo más que lo que programes del lado del servidor (ya que el servidor puede hacer la p0lla en verso, pero necesita que le hagas una petición para mostrartelo). Asi que igualmente tendrias que meter javascript(ajax) en la web. Asi que en navegadores muy humildes (móviles normales?) olvidate de que funcione.
    Pero a ver, es el tema, estás hablando de una aplicación web de control de un robot en tiempo real, normal que las especificaciones del cliente sean las necesarias a la tarea.
    Si quisieras poder controlarlo desde un móvil, podrias aparte programar una app en j2me que se conecte directamente con sockets y demás al robot.

    LADECADENCE.NET GBCartflasher!!!

  3. #48

    Fecha de ingreso
    May 2004
    Mensajes
    1,535
    Mencionado
    8 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    75
    Agradecer Thanks Received 
    5
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    Sí, ya habñia caído en eso. Con navegadores más humildes me voy a cosas pequeñas pero potentes, navegadores de Symbian, iPhone y/o Android.

    No obstante, si hay que pasar de ellos, se pasa, no me produce pena, esto es para lo que es (como bien dices).

    Yo contaba con la idea de utilizar el PeriodicalUpdater para actualizar los datos en la web (o alguna idea del estilo), de tal manera que sigue quedando poco pesada (con respecto a utilizar JAVA). El problema que tengo es para actualizar tales datos, que no sé cómo hacerlo. Un CGI con el PeriodicalUpdater sólo actualiza una variable. Quizá pueda poner varios CGIs para varias variables (esto habría que verlo) pero surge otro problema: al menos en el router, si con un CGI llamaba a un shell script que a su vez llamaba al programita, el CGI esperaba a que todo acabase (o esa sensación me daba). Total, que la página se quedaba todo el rato cargando. ¿Se ve por dónde voy? Eso es lo que más me frustró en su momento. Alternativas a eso, o eso bien hecho (lo más probable es que algo hiciera mal).
    Con permiso de xzakox:

  4. #49

    Fecha de ingreso
    May 2004
    Mensajes
    1,535
    Mencionado
    8 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    75
    Agradecer Thanks Received 
    5
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    Seguramente el problema sea que no conozco todo el potencial del CGI. El tema es que yo tengo el cliente (del robot) en C, que me escupe printf's, con información relevante e irrelevante (vamos, cosas como conectando, que son de relevancia relativa, y cosas como distancia = 10, que son más relevantes). Lo que no termino de ver es cómo narices le pido esos datos, ni tan siquiera cómo lanzar el programa cliente sin que me deje la página clavada esperando que termine el programa.
    Venga, decidme ahora: estás haciendo esto mal, tendrías que haberte leído esto otro, etc. que me lo merezco XD Pero es que no sé muy bien por donde tirar.
    Con permiso de xzakox:

  5. #50

    Fecha de ingreso
    May 2004
    Mensajes
    1,535
    Mencionado
    8 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    75
    Agradecer Thanks Received 
    5
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    Dos cosillas, la una entiendo que más sencilla, aunque se me escapa: en el CGI, ¿he de definir aquello que le puedo pedir (si está hecho en C) como parámetros que le pueden ser enviados? ¿Y si es en shell o Perl?

    Esta última pregunta va en relación a lo siguiente: veo lo del CGI para la petición o envío de las variables que sean (bueno, para el envío, le tengo que dar una pensada), pero el problema está en que el CGI tiene una vida efímera, dura lo que tarda en dar el dato pedido o lo que sea, luego no puede ser el programa cliente, que ha de estar corriendo todo el rato. Entonces, ¿cómo envío/recibo datos entre el CGI y el cliente programado en C?

    Gracias por el ejemplo.
    < - >
    Hago un pequeño , porque lo que me da verdaderos quebraderos de cabeza es el cómo comunicar los datos del cliente (del programa de robótica) programado en C con la web servida (todo en el servidor mejor que en el cliente, osea, sin usar sockets y JAVA).

    Un saludo y gracias de antemano
    Última edición por 3L_S4N70; 15/12/2009 a las 11:05 Razón: Edición automática anti doble-post.
    Con permiso de xzakox:

  6. #51

    Fecha de ingreso
    Jan 2006
    Ubicación
    Xixón, Asturies
    Mensajes
    2,741
    Mencionado
    20 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    14
    Thanked in
    Agradecido 6 veces en [ARG:2 UNDEFINED] posts
    Te voy a poner un ejemplo de Ajax completo, pa que veas un poco como iria.

    Primero el CGI, pa linux, en C, muy simple:

    Código:
    #include <stdio.h>
    #include <time.h>
    
    int main() {
            time_t mi_time;
    
            mi_time = time(NULL);
    
            printf("Content-Type: text/plain;charset=us-ascii\n\n");
            printf("Hora actual: %s", ctime(&mi_time));
    
            return 0;
    }
    Lo compilas con gcc -o prueba prueba.c y metes el binario "prueba" en tu /cgi-bin y puedes probar que funcione haciendo peticiones al server en /cgi-bin/prueba
    Como ves, para ver la hora actualizada, tienes que ir haciendo peticiones (recargando la página). Bien , esto es lo que javascript y Ajax, nos van a ayudar a hacer.

    Bien, te bajas la libreria prototype.js (http://www.prototypejs.org/assets/20...ype-1.6.0.3.js), la renombras como prototype.js (por comodidad) y la metes en tu /var/www.
    Ahora creas una página html en /var/www con este contenido:
    Código:
    <html>
            <head>
                    <title> prueba ajax </title>
                    <script type="text/javascript" src="prototype.js"></script>
                    <script type="text/javascript">
                            new Ajax.PeriodicalUpdater('lahora', '/cgi-bin/prueba', {
                                method: 'get',
                                frequency: 1,
                                decay: 1
                            }); 
                    </script>
    
            </head>
    
            <body>
                    <h1> WOOOO Ajax Pino!!</h1>
    
                    <p> La hora actual es: </p>
    
                    <div id="lahora">
                    </div>
    
                    <p> Esto es la p00llah! </p>
            </body>
    </html>
    Prueba a cargar la web. Ueee un reloj Ajax, IMPRESIONANTE! xD

    Bien, el asunto está en el script, que crea un PeriodicalUpdater de prototype, que lo que hace es cada cierto tiempo (le decimos un segundo con el parámetro frecuency), hace una petición al servidor en la url que le pasamos (el cgi), y actualiza un objeto del DOM, con la respuesta que recibe del servidor, en este caso, le decimos que actualize el objeto 'mihora', que hemos definido en el html con un div de id="mihora", con el contenido de la petición a /cgi-bin/prueba, nuestro CGI compiladito.
    Asi que el Ajax, va haciendo peticiones cada segundo al servidor, y actualiza el DOM del documento cargado autómaticamente.

    Creo que puedes tirar por ahi, solo necesitas o bien hacer varios CGI's para cada cosa (que le pidan datos/manden ordenes al robot), o bien hacer uno que acepte parámetros en la petición.
    Hay por ahi un montón de tutoriales de CGI en C que te pueden orientar en esto.

    LADECADENCE.NET GBCartflasher!!!

  7. #52

    Fecha de ingreso
    May 2004
    Mensajes
    1,535
    Mencionado
    8 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    75
    Agradecer Thanks Received 
    5
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    Hola xzakox.
    Mil gracias por el ejemplo, y a riesgo de que me mandes a la mierda, ese es el punto exacto en el que me encuentro estancado hace una semana. Hice un ejemplito que venía a hacer lo mismo, darme la hora, y actualizarse cada segundo con el PeriodicalUpdater.

    Mi problema va en el sentido en que un CGI se ejecuta sólo cuando lo llamas, y "para" la web hasta que termina de ejecutarse. Sin embargo, en la parte del robot, que también utiliza una configuración cliente/servidor, el cliente, que es el programa con el que quiero interactuar (y para el que sólo puedo utilizar C, C++ o Python), debe conectarse al servidor del robot, y mantenerse conectado a éste. Por tanto, no puedo hacerlo con un CGI.

    Es por ello que mi pregunta va orientada hacia el hecho de comunicar el cliente y supongo que el CGI, para que éste último con su efímera vida le pida los datos al primero, y los actualice para utilizarlos en la web.

    Gracias de antemano.
    Con permiso de xzakox:

  8. #53

    Fecha de ingreso
    May 2004
    Mensajes
    1,535
    Mencionado
    8 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    75
    Agradecer Thanks Received 
    5
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    Vaya por Dios, ¿no hay nada que haga algo similar pero dentro del servidor? Si hago tanto el CGI como el cliente en C, algo que comunique procesos corriendo en la misma máquina. No sé, alguna cosilla así.
    Con permiso de xzakox:

  9. #54

    Fecha de ingreso
    Mar 2005
    Mensajes
    3,145
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    29
    Thanked in
    Agradecido 19 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por 3L_S4N70 Ver mensaje
    Vaya por Dios, ¿no hay nada que haga algo similar pero dentro del servidor? Si hago tanto el CGI como el cliente en C, algo que comunique procesos corriendo en la misma máquina. No sé, alguna cosilla así.
    ¿PHP no te vale? (no, no me he leído el resto del hilo x'D)

    Saludos, Alex

  10. #55

    Fecha de ingreso
    May 2004
    Mensajes
    1,535
    Mencionado
    8 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    75
    Agradecer Thanks Received 
    5
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    Bueno, vale, ya me he aclarado alguna cosilla.

    Respecto a lo que dice PharaOnyx, sí, PHP me lo permitiría, creo. Lo había olvidado porque lo descarté obviando el dato actual de que podía usar un PC como servidor, donde me cabe PHP (no como en La Fonera y su limitado espacio).

    Respecto a lo que yo quería, hacerlo de la parte del servidor, encontré la manera. Veamos, os comento lo que me joroba de primeras, Player utiliza una configuración de cliente/servidor, pero sólo proporciona oficialmente librerías para C, C++ y Python. Esto está muy bien para hacer clientes dedicados, pero si se quiere hacer vía Web, estaría genial que proporcionasen cositas en Java, JS, o incluso genérico, ya que podrían hacerse los clientes incluso en HTML (con AJAX o las florituras necesarias) sin tener que meterse en los follones que me estoy metiendo yo.
    Dicho esto, lo que he encontrado: mkfifo. Me permite hacer una tubería entre procesos. La idea que tengo es hacer una tubería (o varias) de estas desde el cliente (Player), y leerla(s) desde el CGI correspondiente, también programado en C. Algún gurú de Linux que opine o critique el concepto (¿quizá sea momento de abrir un hilo paralelo sobre temas de Linux?).

    Un saludo, espero vuestros comentarios, y os mantendré informados cuando me frustre porque no rula.
    Con permiso de xzakox:

  11. #56

    Fecha de ingreso
    Mar 2005
    Mensajes
    3,145
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    29
    Thanked in
    Agradecido 19 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por 3L_S4N70 Ver mensaje
    Bueno, vale, ya me he aclarado alguna cosilla.

    Respecto a lo que dice PharaOnyx, sí, PHP me lo permitiría, creo. Lo había olvidado porque lo descarté obviando el dato actual de que podía usar un PC como servidor, donde me cabe PHP (no como en La Fonera y su limitado espacio).

    Respecto a lo que yo quería, hacerlo de la parte del servidor, encontré la manera. Veamos, os comento lo que me joroba de primeras, Player utiliza una configuración de cliente/servidor, pero sólo proporciona oficialmente librerías para C, C++ y Python. Esto está muy bien para hacer clientes dedicados, pero si se quiere hacer vía Web, estaría genial que proporcionasen cositas en Java, JS, o incluso genérico, ya que podrían hacerse los clientes incluso en HTML (con AJAX o las florituras necesarias) sin tener que meterse en los follones que me estoy metiendo yo.
    Dicho esto, lo que he encontrado: mkfifo. Me permite hacer una tubería entre procesos. La idea que tengo es hacer una tubería (o varias) de estas desde el cliente (Player), y leerla(s) desde el CGI correspondiente, también programado en C. Algún gurú de Linux que opine o critique el concepto (¿quizá sea momento de abrir un hilo paralelo sobre temas de Linux?).

    Un saludo, espero vuestros comentarios, y os mantendré informados cuando me frustre porque no rula.
    Iba a comentar una cosa acerca de librería C y extensiones en tiempo de ejecución para PHP, pero mejor me voy a leer el hilo entero primero x'D

    Basándome en ese último post que has puesto, podrías hacer un cliente en AJAX (JavaScript) que se comunique con tu CGI (en PHP), llamando éste a la librería C del chisme en cuestión (extensión en tiempo de ejecución)

    Saludos, Alex

    pd: cuando me lea el hilo entero edito el post con lo que sea

  12. #57

    Fecha de ingreso
    May 2004
    Mensajes
    1,535
    Mencionado
    8 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    75
    Agradecer Thanks Received 
    5
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    Jajaja, pues a pesar de los fregaos en los que me veis metido, Ingeniería Electrónica. Sólo que soy de los que piensan que centrarse únicamente en una disciplina no es tan enriquecedor como tocar un poquito de otras. Ayuda también al entendimiento interdisciplinar, que es el presente y más aún el futuro.

    PharaOnyx, fáceme un favor, amplíame un poco tu última respuesta, sobre todo eso de comunicar la librería en C y el CGI, extensión en tiempo de ejecución.

    Un saludo
    Con permiso de xzakox:

  13. #58

    Fecha de ingreso
    Mar 2005
    Mensajes
    3,145
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    29
    Thanked in
    Agradecido 19 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por 3L_S4N70 Ver mensaje
    PharaOnyx, fáceme un favor, amplíame un poco tu última respuesta, sobre todo eso de comunicar la librería en C y el CGI, extensión en tiempo de ejecución.
    Yo es que ando un poco perdido con lo que quieres hacer, la verdad x'D

    Esta situación es la que yo entiendo:
    - una persona se mete en una página web (html)
    - esa página web llama a un cgi (php, perl, python, shell scripting)
    - ese cgi llama a un cliente hecho en C (c, obviamente x'D)
    - ese cliente usa una librería en C para comunicarse con el robot

    Si haces el CGI en PHP puedes hacer una extensión en tiempo de ejecución para usar directamente la librería C, es decir, pasar olímpicamente del cliente ese y poder utilizar la funcionalidad de la librería C desde PHP, como si fueran funciones nativas de PHP. Por esta página explican cómo va el tema. Puede parecer complicado al principio, pero la gran parte de los pasos son automáticos

    O si la librería esa tiene soporte para Python, pues un mod_python para Apache y santas pascuas :9

    Saludos, Alex

  14. #59

    Fecha de ingreso
    Apr 2007
    Ubicación
    Rostovillar
    Mensajes
    3,783
    Mencionado
    11 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    1,016
    Agradecer Thanks Received 
    407
    Thanked in
    Agradecido 256 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por 3L_S4N70 Ver mensaje
    Bueno, vale, ya me he aclarado alguna cosilla.

    Respecto a lo que dice PharaOnyx, sí, PHP me lo permitiría, creo. Lo había olvidado porque lo descarté obviando el dato actual de que podía usar un PC como servidor, donde me cabe PHP (no como en La Fonera y su limitado espacio).

    Respecto a lo que yo quería, hacerlo de la parte del servidor, encontré la manera. Veamos, os comento lo que me joroba de primeras, Player utiliza una configuración de cliente/servidor, pero sólo proporciona oficialmente librerías para C, C++ y Python. Esto está muy bien para hacer clientes dedicados, pero si se quiere hacer vía Web, estaría genial que proporcionasen cositas en Java, JS, o incluso genérico, ya que podrían hacerse los clientes incluso en HTML (con AJAX o las florituras necesarias) sin tener que meterse en los follones que me estoy metiendo yo.
    Dicho esto, lo que he encontrado: mkfifo. Me permite hacer una tubería entre procesos. La idea que tengo es hacer una tubería (o varias) de estas desde el cliente (Player), y leerla(s) desde el CGI correspondiente, también programado en C. Algún gurú de Linux que opine o critique el concepto (¿quizá sea momento de abrir un hilo paralelo sobre temas de Linux?).

    Un saludo, espero vuestros comentarios, y os mantendré informados cuando me frustre porque no rula.
    A lo mejor con sockets en C te es más fácil que andar comunicando procesos con mecanismos del S.O. Así tendrías el cliente que escucha a su vez en un puerto determinado en la IP de loopback(127.0.0.1) y el CGI que hace peticiones a esa IP y puerto para mandar o leer datos.

    A parte de ser más fácil que las tuberías es más portable al tener librerías de sockets en todos los S.O.
    Buy this car to drive to work. Drive to work to pay for this car.

  15. #60

    Fecha de ingreso
    May 2004
    Mensajes
    1,535
    Mencionado
    8 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    75
    Agradecer Thanks Received 
    5
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    @PharaOnyx: ya le estoy echando un vistazo a eso del C en PHP, suena interesante, aunque creo que es demasiado fregado. Además, ahora que vuelvo a ver posibilidades en integrarlo dentro del robot, voy a ver si puedo pasar de cosas que no me quepan como el PHP. No obstante, apreció tu sugerencia, la tendré en cuenta para futuras cosillas (y para conocimiento personal).

    @Natzrezim: No lo había considerado, y lo tenía delante de mis narices. De todas maneras, si consigo correrlo sobre el robot (en el router), cliente y servidor correrían sobre la misma máquina, en un puerto determinado en el que estaría escuchando el servidor, y por tanto con la IP de loopback. No debiera existir ningún problema en que el cliente y el CGI se comuniquen en la misma IP en un puerto distinto, ¿verdad?

    Voy a ir mirándo lo de los sockets también.
    Con permiso de xzakox:

Página 4 de 12 PrimerPrimer 12345678 ... ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •